一,第三方SDK
1.登陆百度SDK官方网站 https://lbsyun.baidu.com/
2.注册账号->申请开发者认证->注册应用
2.1注册应用
开发版本密匙口令默认:android
上线版本开发口令自己设置jks里设置密码(别名设置的是android jks文件要粘贴到相应位置)
3.下载SDK,下载demo ->查看文档
二,实现功能
1.引入基本地图功能
1.1导包
1.2配置文件
防混淆 minifyEnabled true 要改为ture
1.3设置AndroidManifest(权限和引入)
###1.4两个类
public class MainActivity extends AppCompatActivity {
private BaiduMap mMap;
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.bmapView);
mMap = mMapView.getMap();
mMap.setMapStatus(MapStatusUpdateFactory.zoomTo(15f));
// 开启定位图层
mMap.setMyLocationEnabled(true);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
---------------------------------------------------------------------
public class BaiduMapApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
}
2.修改地图类型
package com.example.mr.zbaidudome;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends AppCompatActivity {
private BaiduMap mMap;
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = findViewById(R.id.bmapView);
mMap = mMapView.getMap();
mMap.setMapStatus(MapStatusUpdateFactory.zoomTo(15f));
// 开启定位图层
mMap.setMyLocationEnabled(true);
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
private static final int ITEM_ID_NORMAL_MAP = 101;
private static final int ITEM_ID_SATELLITE_MAP = 102;
private static final int ITEM_LOCATION = 103;
private static final int ITEM_SHOW_SHOPS = 104;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(Menu.NONE, ITEM_ID_NORMAL_MAP, 0, "切换为普通地图");
menu.add(Menu.NONE, ITEM_ID_SATELLITE_MAP, 0, "切换为卫星地图");
menu.add(Menu.NONE, ITEM_LOCATION, 0, "定位到我的位置");
menu.add(Menu.NONE, ITEM_SHOW_SHOPS, 0, "显示所有商家");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case ITEM_ID_NORMAL_MAP:
mMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
break;
case ITEM_ID_SATELLITE_MAP:
mMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
break;
}
return super.onOptionsItemSelected(item);
}
}