2015-06-13
最近学习了百度地图API的简单开发,现记录如下:(持续更新中)
百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScript API、Web服务API、Android SDK、iOS SDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。 ————来自百度百科
百度地图API首页:http://developer.baidu.com/map/index.php?title=%E9%A6%96%E9%A1%B5
首先,百度地图开发使用需要每个用户为自己的应用申请一个开发密匙,步骤如下:
1.进入获取密匙页面:点击进入;
2.点击 创建应用 ,将应用类型选为 Android SDK 填写自己的应用名称;
3.获取安全码:详细教程请看:http://developer.baidu.com/map/index.php?title=androidsdk/guide/key
4.点击提交即可查看自己的应用
然后进入代码编写过程,我是使用 Eclipse 来建立Android工程:
1.在 AndroidMinifest.xml 文件中加入代码导入密匙并加入权限
密匙代码:(在application下加入)
1 <meta-data 2 android:name="com.baidu.lbsapi.API_KEY" 3 android:value="你的 key " />
权限代码:
1 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 2 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 3 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 4 <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> 5 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 6 <uses-permission android:name="android.permission.INTERNET" /> 7 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 8 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 9 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 10 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 11 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 12 <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 13 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
2.在布局文件 activity_main.xml 内加入地图控件:
1 <com.baidu.mapapi.map.MapView 2 android:id="@+id/bmapView" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:clickable="true" />
3.编写 MainActivity.java --显示地图主程序:
1 package 你的包名; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import com.example.mapdemo.MainActivity; 7 8 import com.baidu.mapapi.SDKInitializer; 9 import com.baidu.mapapi.map.BaiduMap; 10 import com.baidu.mapapi.map.BaiduMapOptions; 11 import com.baidu.mapapi.map.MapStatus; 12 import com.baidu.mapapi.map.MapView; 13 import com.baidu.mapapi.model.LatLng; 14 15 public class MainActivity extends Activity { 16 private MapView mMapView = null; 17 private BaiduMap mBaiduMap; 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 //在使用SDK各组件之前初始化context信息,传入ApplicationContext 22 //注意该方法要再setContentView方法之前实现 23 SDKInitializer.initialize(getApplicationContext()); 24 setContentView(R.layout.activity_main); 25 //获取地图控件引用 26 mMapView = (MapView) findViewById(R.id.bmapView); 27 mBaiduMap = mMapView.getMap(); 28 //setMapType(BaiduMap.MAP_TYPE_NORMAL); 29 //mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE); 30 } 31 @Override 32 protected void onDestroy() { 33 super.onDestroy(); 34 //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 35 mMapView.onDestroy(); 36 } 37 @Override 38 protected void onResume() { 39 super.onResume(); 40 //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 41 mMapView.onResume(); 42 } 43 @Override 44 protected void onPause() { 45 super.onPause(); 46 //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 47 mMapView.onPause(); 48 } 49 }
最后可以在模拟器内运行看看结果: