【FAQ】关于华为地图服务定位存在偏差的原因及解决办法( 四 )

b. 调用上述方法,将Location SDK获取的经纬度的坐标系转换为GCJ-02,可在LocationCallback回调方法中执行转换代码 。
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]);c. 转换结果—日志表现:

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

文章插图
d. 转换结果-用户界面表现:从两图可以看出,转换坐标系之后的经纬度 与 用户实际所在位置经纬度无偏差 。
【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

文章插图
【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

文章插图
4. 将GCJ-02坐标系的经纬度通过huaweiMap.setLocationSource(LocationSouce locationSouce)方法设置为我的位置图层的定位源,具体实现如下:
  1. 新建MyLocationSouce类,定义定位源 。
private class MyLocationSouce implements LocationSource {    private OnLocationChangedListener listener;    @Override    public void activate(OnLocationChangedListener onLocationChangedListener) {        listener = onLocationChangedListener;    }    @Override    public void deactivate() {    }    /**     * 改变我的位置图层的定位源     * @param lat_gcj02 GCJ-02     * @param log_gcj02 GCJ-02     */    public void changeMyLocationSouce(double lat_gcj02, double log_gcj02) {        Location location = new Location("Provider");        location.setLatitude(lat_gcj02);        location.setLongitude(log_gcj02);        //设置精度        location.setAccuracy(200);        //当获取到新的用户位置时,调用此方法,设置定位源        listener.onLocationChanged(location);    }}
  1. 初始化MyLocationSouce类 并 将MyLocationSouce设置为我的位置图层的定位源:
private MyLocationSouce myLocationSouce;@Overridepublic void onMapReady(HuaweiMap huaweiMap) {    this.huaweiMap = huaweiMap;    huaweiMap.setMyLocationEnabled(true);    //初始化LocationSouce并设置我的位置图层的位置源    if (null == myLocationSouce){        myLocationSouce = new MyLocationSouce();    }    huaweiMap.setLocationSource(myLocationSouce);}

    经验总结扩展阅读