百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。我们可以使用SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
- 本博客主要展示内容如下:
- 普通地图(2D,3D),卫星地图和实时交通图;
- 可通过接口或手势控制来实现地图的点击、双击、长按、缩放、旋转、改变视角等操作。
- 本套开发指南主要是针对Eclipse开发环境进行编写的。
- 应用名称:可以用汉字、英文,但是不能涉及敏感词,比如百度、地图。
- 应用类型:Android SDK
- 启用服务:可以全选,也可以选择常用的,根据需要选择就行
- 发布版SHA1和开发版SHA1:可以直接写一样的,只要不是为了发布应用。如何获取开发版SHA1(在Eclipse中选择window->preferences->Android->Build)
- 包名:必须和自己创建项目的包名保持一致
接下来就是配置环境:
- 首先要把下载的SDK里面的libs下的文件拷到自己的libs目录下,然后BuildPath。
- 在Application中添加权限等一系列操作
- 添加开发者密钥
<application> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> </application>
- 添加权限
<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" />
- 在activity_main.xml中添加地图控件
<com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" />
- 在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); } }
- 由于地图很费电量,需要管理下地图的生命周期
@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(); } }
- 完成这些之后就可以显示基本地图了
- 另外,百度地图SDK还为我们提供了一些其他模式的地图,实现这些功能非常简单,核心代码如下:
mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); //普通地图 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL); //卫星地图 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); //空白地图, 基础地图瓦片将不会被渲染。在地图类型中设置为NONE,将不会使用流量下载基础地图瓦片图层。使用场景:与瓦片图层一起使用,节省流量,提升自定义瓦片图下载速度。 mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NONE); 还可以实现实时交通图 //开启交通图 mBaiduMap.setTrafficEnabled(true); 以及城市热力图 //开启城市热力图 mBaiduMap.setBaiduHeatMapEnabled(true);
- 基本的简单地图这样就能实现了,有什么不足之处,望多多指正!