您的位置:首页 > 移动开发 > Android开发

使用百度地图API

2015-09-29 11:52 561 查看
百度地图提供了丰富的API, 可以使我们很方便的调用百度地图实现定位和导航功能。

1. 申请百度开发者账号

要使用百度地图的API,首先可以登录百度开发者的首页(http://developer.baidu.com/),注册一个百度的开发者账号。在开发者首页我们可以看到众多的百度提供的开发工具。选择百度地图,进入百度地图开放平台首页(http://developer.baidu.com/map/)



2. 申请API Key

接下来要申请API Key。只有申请了API Key 才可以在自己的应用中使用百度地图。可以点击“申请密钥”, 也可以点击页面右上角的“API控制台”


在这里会显示所有你已经申请过的API Key。你可以点击“创建应用”来创建一个新的API Key。



应用名称可以随便填;应用类型选择Android SDK;安全码是 数字签名+;+包名。数字签名可以通过Eclipse中的Windows->Preferences->Android->Build 中查看到;包名就是应用程序所在的包。



3. 下载百度地图SDK



如上图,进入SDK下载页面后,选择需要的模块下载。我在这里只下载了地图的功能。



下载成功以后应该是一个压缩包,解压以后如图所示



将其中的.jar 文件和armeabi 目录拷贝到项目的libs目录下就可以了。

4. 调用百度地图API

如何在自己的项目中调用百度地图的API, 百度的Wiki 上有详细的说明http://developer.baidu.com/map/index.php?title=androidsdk/guide/hellobaidumap

1)首先就是先向application 中添加密钥

<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>

上面value 属性引号中的内容用自己刚刚申请的AK替换。
2)接下来要申明一堆权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

3)接下来在布局中添加地图控件
<com.baidu.mapapi.map.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />

4)在Activity中初始化SDK
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}

5)创建地图Activity,管理生命周期
public class MainActivity extends Activity {
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}

至此,百度地图就创建完毕了。

注:在一些较老的资料上提到用BMapManager 创建地图,但这种方法好像在最新版本的SDK中被放弃了。。。已经找不到BMapManager 的类了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息