Android百度地图当前位置获取功能
Android 的百度地图定位功能,是不少项目里常见又挺实用的一块功能。百度的 SDK 做得还不错,定位比较快,而且结合 GPS 和网络定位,准确度也蛮高的。如果你要在项目里加个“查看当前位置”的功能,这篇教程真的值得一看。
定位用的是百度地图 API,用之前你得去百度地图开放平台申一个API 密钥。注册、创建应用、拿到 key 之后,就可以开始搞了。记得在AndroidManifest.xml
里加上ACCESS_FINE_LOCATION
和ACCESS_COARSE_LOCATION
两个权限,要不然位置读不出来哦。
SDK 引入也蛮方便的,直接用Gradle
拉下来就行:
dependencies {
implementation 'com.baidu.mapapi:baidumapapi:5.2.0'
}
在布局文件里放一个MapView
控件,这个是地图的核心:
在Activity
或者Fragment
里初始化它,监听位置变化就能拿到当前坐标。位置一拿到,你就可以搞事情,比如在地图上打个点、更新 UI 什么的:
mapView = findViewById(R.id.bmapView);
BaiduMap baiduMap = mapView.getMap();
baiduMap.setOnMyLocationChangeListener(new BaiduMap.OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getAccuracy())
.direction(location.getBearing())
.latitude(latitude)
.longitude(longitude)
.build();
baiduMap.setMyLocationData(locData);
}
}
});
百度地图还支持显示指南针、比例尺这些小工具,增强用户体验也是加分项:
baiduMap.setCompassEnabled(true);
baiduMap.setScaleControlEnabled(true);
baiduMap.setMyLocationEnabled(true);
资源释放也别忘了,退出页面时要把MapView
销毁:
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
如果你想深入了解相关的定位功能,也可以去看看这些相关文章:
如果你项目里需要用到实时定位,又想用户体验流畅点,那这套方案你可以放心上。
1.79MB
文件大小:
评论区