1.百度地图官方API文档下载
版本 | 使用说明 | 下载 |
Android SDK 通用资源下载 | 《离线地图》提供新版离线地图(百度矢量地图)与旧版离线地图(百度栅格地图)下载。 备注:
| |
Android SDKv2.2.0 (矢量地图版) | 1. 若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。 2. 该版本SDK提供矢量版地图。 3. Lib库和示例代码下载包中均含有readme.txt,可阅读参考,有助您的开发。 4. 若使用离线地图,请下载矢量版离线地图。注意:请参阅开发指南_离线地图说明,导入至BaiduMapSdk文件夹。 5. 注意:自v2.1.3版本起,SDK采用了全新的Key验证体系,如果您选择使用v2.1.3及以后的版本,需申请全新的Key。(点击查看申请流程 ) | |
Android SDKv1.3.5 (栅格地图版) | 若需使用Android SDK,请先下载对应版本的lib库,在Android工程中引用jar和so文件。 该版本提供栅格版底图。 |
2.申请密钥key
http://developer.baidu.com/map/android-mobile-apply-key.htm
3.建立项目
4.导入jar包
将实例中的libs文件夹拷贝到项目中,然后选中baidumapapi.jar,右键--〉build path-->add to build path
5.在activity_main.xml中添加一个view用来显示地图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 添加显示地图的控件 -->
<com.baidu.mapapi.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
</LinearLayout>
6.编写MainActivity.java对功能进行实现
package com.arlen.baidu_hello;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKGeneralListener;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
public class MainActivity extends MapActivity {
// 添加百度地图的相关控件
private MapView mapView;
private BMapManager bMapManager; // 加载地图的引擎
// 百度地图的key
private String keyString = "43D220AAB0DEC976D2EABC83CFC9EEE52BCCCA7A";
// 在百度地图上添加一些空间,比如放大或者缩小
private MapController mapComtroller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = (MapView) findViewById(R.id.bmapView);
bMapManager = new BMapManager(MainActivity.this);
// 必须要加载key
bMapManager.init(keyString, new MKGeneralListener() {
@Override
public void onGetPermissionState(int arg0) {
// TODO Auto-generated method stub
if (arg0 == 300) {
Toast.makeText(MainActivity.this, "输入的key有误,请核实!", 1)
.show();
}
}
@Override
public void onGetNetworkState(int arg0) {
// TODO Auto-generated method stub
}
});
this.initMapActivity(bMapManager);
mapView.setBuiltInZoomControls(true); // 表示可以设置缩放功能
mapComtroller = mapView.getController();
// 需要定义一个经纬度
GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1E6),
(int) (116.404 * 1E6));
// 设置一个中心点
mapComtroller.setCenter(geoPoint);
// 设置缩放级别
mapComtroller.setZoom(12);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if (bMapManager != null) {
bMapManager.destroy();
bMapManager = null;
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (bMapManager != null) {
bMapManager.start();
}
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (bMapManager != null) {
bMapManager.stop();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
7.修改AndroidManifest.xml文件,指定用户权限及对不同屏幕的支持
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.arlen.baidu_hello"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.arlen.baidu_hello.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE" >
</uses-permission>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="false"
android:resizeable="true"
android:smallScreens="true" />
</manifest>
8.至此,所有的工作基本完成,下面是运行效果图:
模拟器:
真机测试: