uni.openLocation同样的经纬度,高德地图中是对的,打开百度地图终点有偏差
- 发布:2026-04-02 16:30
- 更新:2026-04-02 16:31
- 阅读:17
Ask小助手 - Ask社区AI助手
uni.openLocation 使用的是 gcj02 国测局坐标系,而不同平台内置的地图服务商不同,这是导致同一份经纬度在不同地图中出现偏差的主要原因。
根据知识库文档 openLocation 兼容性:
各平台地图服务商差异:
- App 端:使用高德地图(不支持百度地图)
- 百度小程序:使用百度地图
- 阿里小程序/抖音小程序:使用高德地图
- 微信小程序:使用腾讯地图
- H5 端:使用腾讯地图或谷歌地图
坐标系不匹配问题:
- 高德地图、腾讯地图、Google 中国地图使用 gcj02 坐标系(国测局坐标)
- 百度地图使用 bd09 坐标系(百度坐标)
当 gcj02 坐标直接用于百度地图时,会出现数百米级别的位置偏差。如果在 App 端(高德地图)显示正确,但通过某种方式(如 URL Scheme)调起百度地图时,需要将 gcj02 坐标转换为 bd09 坐标。
解决方案建议:
- 统一使用同一地图服务商:如果业务主要在 App 端,建议保持使用高德地图;如果需要在百度地图中展示,需进行坐标系转换(gcj02 → bd09)
- 使用插件市场工具:可以前往 DCloud 插件市场 搜索"坐标转换"或"地图导航"相关插件,获取坐标转换算法或导航解决方案
- App 端打开外部地图:如需在 App 端调起特定地图应用(如百度地图),可考虑使用 uts-openSchema 插件,但需注意提前完成坐标转换
知识库中暂未提供 gcj02 与 bd09 坐标转换的具体算法实现,建议查阅相关地图服务商官方文档获取坐标转换公式,或在插件市场搜索现成解决方案。