Android Studio开发——百度地图定位
16lz
2021-01-23
Android Studio开发——百度地图定位
- 开发前配置
- 项目实例
- 1.在清单文件中增加权限和添加注册远程服务和配置应用Key
- 2.在activity_main.xml里添加控件
- 3.地图初始化
- 4.通过LocationClient发起定位
- 5.管理各部分的生命周期
- 效果展示
- 参考链接
- 源码下载
开发前配置
注册和获取密钥
http://lbs.baidu.com/index.php?title=androidsdk/guide/create-project/ak
在项目中集成BaiduMap SDK
http://lbs.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio
项目实例
1.在清单文件中增加权限和添加注册远程服务和配置应用Key
<!-- 访问网络,进行地图相关业务数据请求,包括地图数据,路线规划,POI检索等 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 获取网络状态,根据网络状态切换进行数据请求网络转换 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 读取外置存储。如果开发者使用了so动态加载功能并且把so文件放在了外置存储区域,则需要申请该权限,否则不需要 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 写外置存储。如果开发者使用了离线地图,并且数据写在外置存储区域,则需要申请该权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 这个权限用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/> android:name="com.baidu.lbsapi.API_KEY" android:value="7iQahDjoQr1A8GucQX1zGeINO2IHYS3l"/>
2.在activity_main.xml里添加控件
3.地图初始化
public class DemoApplication 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); }
AndroidManifest.xml:
<application android:name=".DemoApplication"
4.通过LocationClient发起定位
private void initLocation() { //初始化 mLocationClient = new LocationClient(getApplicationContext()); mLocationClient.registerLocationListener(new MyLocationListener()); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mapView = findViewById(R.id.bmapView); baiduMap = mapView.getMap(); tv_Lat = findViewById(R.id.tv_Lat); tv_Lon = findViewById(R.id.tv_Lon); tv_Add = findViewById(R.id.tv_Add); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); // 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setScanSpan(1000); //设置扫描时间间隔 //设置定位模式,三选一 option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); //开启地图定位图层 mLocationClient.start(); //设置需要地址信息 option.setIsNeedAddress(true); //保存定位参数 mLocationClient.setLocOption(option); }
5.管理各部分的生命周期
@Override protected void onResume() { super.onResume(); mapView.onResume(); } @Override protected void onPause() { super.onPause(); mapView.onResume(); } @Override protected void onDestroy() { super.onDestroy(); mLocationClient.stop(); mapView.onDestroy(); }
效果展示
(我是用真机进行调试运行的,如果无法定位,建议参考https://blog.csdn.net/csr_yang/article/details/39530279?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase)
参考链接
显示地图
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap
显示定位
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/location
源码下载
https://gitee.com/moshangxveran/BaiduPositioning
更多相关文章
- Android 获取远程图片与本地图片缓存
- Android引路蜂地图开发示例:概述
- Android 通过百度地图SDK 实现地图显示和定位(一)
- 百度地图android sdk拖拽overlay item
- android 基于百度地图api开发定位以及获取详细地址
- Android Google Map实例 - 在地图和卫星图之间切换(Android mapv
- android调用第三方地图(URI)