安卓百度地图开发文档
1. 申请API key
利用jdk工具生成,进入jdk 的bin目录下,
输入keytool -genkey -alias androiddebugkey-keyalg RSA -validity 20000 -keystore debug.keystore -storepass android-keypass android,并根据中文提升输入基本信息(测试key可以随便填)。最后输入y确认,最后可以在jdk的bin目录下找到生成的debug.keystore。
之后再输入keytool -list -v-keystore debug.keystore可以查看生成的证书信息,在百度地图开发平台上创建新的应用,输入相应的SHAI信息,创建Android应用,即可生成API key。
2. 配置百度地图开发环境
(1)在http://lbsyun.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar链接下下载相应的开发包。下载完将压缩包中的jar包导入到工程目录下的libs文件夹中,在src/main目录下新建jniLibs目录,将所有的so文件放到这个目录中,新建assets目录,将剩下的assets目录下的所有资源放到这个目录下。
(2)在Application中配置自己的API key
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="申请的API key" />
(3)配置所需要的权限信息:
1. !-- 百度API所需权限 -->
2. <uses-permission android:name="android.permission.GET_ACCOUNTS" />
3. <uses-permission android:name="android.permission.USE_CREDENTIALS" />
4. <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
5. <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
6. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
7. <uses-permission android:name="android.permission.INTERNET" />
8. <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
9. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
10. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
11. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
12. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
13. <uses-permission android:name="android.permission.BROADCAST_STICKY" />
14. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
15. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
(4)注册定位的service
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
<intent-filter>
<action android:name="com.baidu.location.service_v2.2"></action>
</intent-filter>
</service>
3. 多种功能的使用
(1)MapView的使用(显示地图信息)
布局文件:
<com.baidu.mapapi.map.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapView">
</com.baidu.mapapi.map.MapView>
MainActivity:
public class MainActivity extends AppCompatActivity {
private MapView mapView;
private BaiduMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mapView=(MapView)findViewById(R.id.mMap);
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
protected void onPostResume() {
super.onPostResume();
mapView.onResume();
}
}
(2)让地图定位到自己的位置
public class MainActivity extends AppCompatActivity {
private MapView mapView;
private BaiduMap map;
private LocationClient locationClient;
private boolean isFirstLocation=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
//定位自己的位置,成功会回调MylocationListener中的onReceiveLocation方法
locationClient=new LocationClient(getApplicationContext());
locationClient.registerLocationListener(new MyLocationListener());
setContentView(R.layout.activity_main);
mapView=(MapView)findViewById(R.id.mMap);
map=mapView.getMap();
}
//让地图移动到自己的位置,