欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

百度地图定位

程序员文章站 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