HarmonyOS鸿蒙Next中geoLocationManager获取经纬度应用在不同坐标系如何转化
HarmonyOS鸿蒙Next中geoLocationManager获取经纬度应用在不同坐标系如何转化 geoLocationManager.getCurrentLocation 获取的定位信息经纬度 仅支持WGS84坐标系,把经纬度应用在百度地图上 会出现定位误差问题,请问如何转化 坐标系 应用在百度地图上呢?
嗨
上面的问题解决了吗
能分享分享怎么解决的吗
我也遇到了同样的问题
误差还挺大
更多关于HarmonyOS鸿蒙Next中geoLocationManager获取经纬度应用在不同坐标系如何转化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,geoLocationManager
获取的经纬度通常基于WGS-84坐标系。如果需要将WGS-84坐标转换为其他坐标系(如GCJ-02或BD-09),可以使用以下方法:
-
WGS-84转GCJ-02:GCJ-02是中国国家测绘局制定的坐标系,用于国内地图服务。可以使用公开的转换算法,如火星坐标系转换算法,将WGS-84坐标转换为GCJ-02。
-
WGS-84转BD-09:BD-09是百度地图使用的坐标系。可以通过先将WGS-84转换为GCJ-02,再将GCJ-02转换为BD-09的方式实现。
-
GCJ-02转BD-09:如果已经获得GCJ-02坐标,可以直接使用百度提供的转换算法将其转换为BD-09。
这些转换算法可以在HarmonyOS应用中以库函数或自定义函数的形式实现。具体实现可以参考公开的转换公式或使用现有的开源库。转换过程中需要注意精度和边界条件,以确保坐标转换的准确性。
在HarmonyOS鸿蒙Next中,使用geoLocationManager
获取的经纬度默认基于WGS84坐标系。若需转换到其他坐标系(如GCJ02或BD09),可通过以下步骤:
- WGS84转GCJ02:使用
CoordinateConverter
类,调用convert
方法,传入WGS84坐标和目标坐标系CoordinateType.GCJ02
。 - WGS84转BD09:同样使用
CoordinateConverter
,目标坐标系为CoordinateType.BD09
。 - GCJ02转BD09:先通过
CoordinateConverter
将GCJ02转回WGS84,再转BD09。
转换代码示例:
CoordinateConverter converter = new CoordinateConverter();
converter.coord(new GeoPoint(latitude, longitude));
GeoPoint convertedPoint = converter.convert(CoordinateType.GCJ02);
确保引入ohos.location.geoLocationManager
和ohos.location.CoordinateConverter
相关类库。