`
ydbc
  • 浏览: 719549 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

百度地图SDK for Android【Hello World】

 
阅读更多

1开发工具

Android开发工具有很多,开发者可根据自己的喜好进行选择。在此,我们推荐开发者使用Eclipse作为自己的开发工具,本套开发指南也是针对Eclipse开发环境下进行编写的。

2工程配置

第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_v2_0_0.jar拷贝到libs根目录下,将libBMapApiEngine_v2_0_0.solibvi_voslib.so拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;

注:liblocSDK3.solocSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。

第二步:在工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定baidumapapi_v2_0_0.jar,确定后返回。

通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了。

3显示地图

百度地图SDK为开发者提供了便捷的显示百度地图数据的接口,通过以下几步操作,即可在您的应用中使用百度地图数据:

第一步:创建并配置工程(具体方法参见工程配置部分的介绍);

第二步:在Manifest中添加使用权限及Android版本支持;

常用使用权限如下(开发者可根据自身程序需求,添加所需权限):

<!--使用网络功能所需权限  -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- SDK离线地图和cache功能需要读写外部存储器 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 获取设置信息和详情页直接拨打电话需要以下权限  -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></permission>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCES_MOCK_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_GPS"/>

配置Activity

<activity android:name=".MapDemo" 
	android:screenOrientation="sensor" 
	android:configChanges="orientation|keyboardHidden"> </activity>

添加屏幕及版本支持:

<supports-screens android:largeScreens="true"
	android:normalScreens="true"
	android:smallScreens="true"
	android:resizeable="true"
	android:anyDensity="true"/>
<uses-sdk android:minSdkVersion="7"></uses-sdk>

第三步:在布局xml文件中添加地图控件,布局文件保存为activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<TextView android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:text="hello world"/>
	<com.baidu.mapapi.map.MapView android:id="@+id/bmapsView"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:clickable="true"/>
</LinearLayout>

第四步:创建地图Activity,并import相关类:

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.Menu;
import android.widget.FrameLayout;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.map.MKMapViewListener;
import com.baidu.mapapi.map.MapController;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapView;
import com.baidu.platform.comapi.basestruct.GeoPoint;

public class MyMapActivity extends Activity{
	@Override
	public void onCreate(Bundle savedInstanceState){
	}
}

第五步:初始化地图Activity、使用key

MyMapActivity中定义成员变量:

BMapManager mBMapMan = null; 
MapView mMapView = null;

onCreate方法中增加以下代码,并将您申请的Key替换“我的Key

super.onCreate(savedInstanceState);
mBMapMan=new BMapManager(getApplication());
mBMapMan.init("我的Key", null);  //注意:请在试用setContentView前初始化BMapManager对象,否则会报错
setContentView(R.layout.activity_main);
mMapView=(MapView)findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件
MapController mMapController=mMapView.getController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放
GeoPoint point =new GeoPoint((int)(39.915* 1E6),(int)(116.404* 1E6));//用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
mMapController.setCenter(point);//设置地图中心点
mMapController.setZoom(12);//设置地图zoom级别

重写以下方法,管理API

@Override
protected void onDestroy(){
	mMapView.destroy();
	if(mBMapMan!=null){
		mBMapMan.destroy();
		mBMapMan=null;
	}
	super.onDestroy();
}
@Override
protected void onPause(){
	mMapView.onPause();
	if(mBMapMan!=null){
		mBMapMan.stop();
	}
	super.onPause();
}
@Override
protected void onResume(){
	mMapView.onResume();
	if(mBMapMan!=null){
		mBMapMan.start();
	}
	super.onResume();
}

完成以上步骤后,运行程序,即可在您的应用中显示如下地图:



更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics