百度地图定位
程序员文章站
2022-07-03 18:06:29
...
效果
二话不说,先看效果:
核心代码
前期准备
注册账号,获取秘钥以及下载sdk等事情,开发文档写的很详细,老师讲的也很详细,就不用多说了。
注册清单
需要在清单文件里注册远程服务和配置秘钥。
<service android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"/>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="bGoaVyqUHUlbeVOCP5jw6TKV5T5BARrS" />
选择GPS加网络混合定位,所以需要在注册清单里填写具体的方式所需要的权限。
<!--进行网络定位 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问GPS定位 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
显示位置
再就是navigateTo(BDLocation bdLocation),这个方法通过一个boolean全局变量判断是否是第一次定位,然后设置定位坐标。从而可以让地图显示出我的位置。当然,显示位置还需要监听函数,在监听函数里调用这个函数。
private class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation bdLocation) {
tv_Lat.setText(bdLocation.getLatitude() + "");
tv_Lon.setText(bdLocation.getLongitude() + "");
tv_Add.setText(bdLocation.getAddrStr());
if (bdLocation.getLocType() == BDLocation.TypeGpsLocation || bdLocation.getLocType() == BDLocation.TypeNetWorkLocation) {
//设置地图显示
navigateTo(bdLocation);
}
}
}
用电脑运行代码,出现不了上述结果,只有用手机才能显示出具体位置,完整版代码见码云:https://gitee.com/ftlalala/BaiduMap/tree/master