第三方百度地图

一、官方下载百度地图jar包:

导入项目libs下:

第三方百度地图

二、添加权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    //获取设备网络状态,禁用后无法获取网络状态
    <uses-permission android:name="android.permission.INTERNET" />
    //网络权限,当禁用后,无法进行检索等相关业务
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    //读取设备硬件信息,统计数据
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    //读取系统信息,包含系统版本等信息,用作统计
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    //获取设备的网络状态,鉴权所需网络代理
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    //允许sd卡写权限,需写入地图数据,禁用后无法显示地图
    <uses-permission
        android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    //获取统计数据
    <uses-permission android:name="android.permission.CAMERA" />
    //使用步行AR导航,配置Camera权限
    <uses-permission android:name="android.permission.INTERNET" />

三、在AndroidManifest中添加开发**、所需权限等信息:

1.在application中添加开发**(AK)

<application>  
    <meta-data  
        android:name="com.baidu.lbsapi.API_KEY"  
        android:value="开发者 key" />  
</application>

2.添加定位service:

  <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" />

四、在布局xml文件中添加地图控件;

<com.baidu.mapapi.map.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </com.baidu.mapapi.map.MapView>

五:在应用程序创建时初始化 SDK引用的Context 是全局变量;

public class MyNews extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化
        SDKInitializer.initialize(this);
        SDKInitializer.setCoordType(CoordType.BD09LL);
    }
}

六、创建地图Activity,管理地图生命周期;

public class Baidu_Map extends AppCompatActivity {

    @BindView(R.id.map)
    MapView map;
    private BaiduMap baiduMap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_baidu__map);
        ButterKnife.bind(this);
        
        //获取百度地图:
        baiduMap=map.getMap();
        
        baiduMap.setMyLocationEnabled(true);
        MyLocationData build=new MyLocationData.Builder().build();
        baiduMap.setMyLocationData(build);
    }
    private void MapLocation(BDLocation location){
        MyLocationData.Builder builder =new MyLocationData.Builder();
        builder.latitude(location.getLatitude());
        builder.longitude(location.getLongitude());

        Log.i("MyLocationData","经度是:"+location.getLongitude()+" "+"纬度是:"+location.getLatitude());
        MyLocationData locationData=builder.build();
        baiduMap.setMyLocationData(locationData);

    }
    @Override
    protected void onResume() {
        super.onResume();
        map.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        map.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        map.onDestroy();
    }
}

 

效果如下:

第三方百度地图第三方百度地图