在LocationCallback回调方法中 将GCJ-02坐标系的经纬度 设置为定位源 。
/** * 定义位置更新回调 */LocationCallback mLocationCallback = new LocationCallback() { @Override public void onLocationResult(LocationResult locationResult) { if (locationResult != null) { // TODO: 处理位置回调结果 addLocationMarker(locationResult.getLastHWLocation().getLatitude(), locationResult.getLastHWLocation().getLongitude()); Log.d("LOG_HwMyLocation", "WGS-86坐标系经纬度:" + locationResult.getLastHWLocation().getLatitude() + " ; " + locationResult.getLastHWLocation().getLongitude()); Log.d("LOG_HwMyLocation", "===============转换地理坐标系==============="); double[] Gcj02LatLng = wgs84_To_Gcj02(locationResult.getLastHWLocation().getLatitude(), locationResult.getLastHWLocation().getLongitude()); Log.d("LOG_HwMyLocation", "Gcj-02坐标系经纬度:" + Gcj02LatLng[0] + " ; " + Gcj02LatLng[1] + "\n"); //将转换坐标系之后的经纬度 标记在地图上 addGCJ02LocationMarker(Gcj02LatLng[0], Gcj02LatLng[1]); if (null != myLocationSouce){ myLocationSouce.changeMyLocationSouce(Gcj02LatLng[0],Gcj02LatLng[1]); } } }};5. 效果展示:通过下方两图可以看出,我的位置图层与用户实际所在位置一致,且无偏差 。
文章插图
文章插图
六、 Map SDK和Location SDK所需的权限列表有:
- Map SDK需要添加的权限列表:
<!-- 您调用地图服务能力,必须在“AndroidManifest”中为您的应用添加下列权限: --><!--允许程序访问网络连接--><uses-permission android:name="android.permission.INTERNET"/><!--允许程序获取网络信息状态--><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!--自定义权限,允许程序读取公共数据--><uses-permission android:name="com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA"/><!--允许改变WLAN状态的开关--><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><!-- 获取设备当前位置需要在“AndroidManifest”中增加以下权限,且Android 6.0以后需动态申请: --><!--允许程序通过Wi-Fi或移动基站的方式获取用户粗略的经纬度信息--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><!--允许程序通过GPS芯片接收卫星的定位信息--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
经验总结扩展阅读
-
-
-
连衣裙 炎热的夏天,穿一件短款修身连衣裙游逛商厦绝对是最惬意的事情!
-
-
-
-
28岁女白领:靠出轨38岁领导走向事业顶峰,我却过得很煎熬
-
久久说情感 凤凰男要求AA制,多年后却向妻子求助,妻子回应:我有钱,但不帮
-
-
-
-
-
-
-
-
事业单位高温补贴多少钱 事业单位高温补贴发放是每年都有吗
-
卡西欧手表哪一款性价比高,卡西欧系列的手表都有哪些好的推荐?
-
-
-