uni-app 谷歌地图在openLocation页面打开第三方导航谷歌显示的经纬度和名称都不正确
uni-app 谷歌地图在openLocation页面打开第三方导航谷歌显示的经纬度和名称都不正确
示例代码:
··· uni.openLocation({ latitude: latitude, longitude: longitude, name: name, address: pcaName, success: () => { console.log(‘success’); } }); ···
## 操作步骤:
使用谷歌地图打包app 使用uni.openLocation传入信息打开谷歌地图查看
## 预期结果:
谷歌地图的展示的位置和uni.openLocation页面的位置一致
## 实际结果:
谷歌地图的展示的位置和uni.openLocation页面的位置不一致
## bug描述:
在uni.openLocation页面位置显示的正确 点击右下角 选择谷歌地图 打卡的位置不正确 (根据规律猜测谷歌地图上显示的是uni.openLocation传的name的附近搜索结果的一个位置)
| 信息类别 | 详情 |
|----------------|--------------------------------|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC操作系统版本 | Windows 11 22H2 |
| HBuilderX类型 | 正式 |
| HBuilderX版本 | 3.8.12 |
| 手机系统 | iOS |
| 手机系统版本 | iOS 17 |
| 手机厂商 | 苹果 |
| 手机机型 | iPhone12 |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
[678b5642c0756b706a73e111ad100a09.zip](//ask.dcloud.net.cn/file/download/file_name-Njc4YjU2NDJjMDc1NmI3MDZhNzNlMTExYWQxMDBhMDkuemlw__)
更多关于uni-app 谷歌地图在openLocation页面打开第三方导航谷歌显示的经纬度和名称都不正确的实战教程也可以访问 https://www.itying.com/category-93-b0.html
遇到了相同的问题,看了下目前的源码,打开谷歌地图时会传入 daddr 和 sll,daddr 传入的是 encodeURIComponent(name), sll 传入的是 encodeURIComponent(latitude + “,” + longitude)) , 但是实际上 daddr 为路线搜索的终点(支持名称/经纬度格式),sll 只是提供搜索的推荐中心点,因此这里 daddr 应该设置为 经纬度格式
源码位置 https://github.com/dcloudio/uni-app/blob/next/packages/uni-app-plus/src/service/api/location/LocationViewPage.ts#L44
谷歌地图文档 https://developers.google.com/maps/documentation/urls/ios-urlscheme?hl=zh-cn
更多关于uni-app 谷歌地图在openLocation页面打开第三方导航谷歌显示的经纬度和名称都不正确的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题可能是由于谷歌地图对坐标和名称参数的处理方式导致的。根据你的描述,谷歌地图似乎将传入的name参数作为搜索词,而不是直接定位到指定坐标。
建议尝试以下解决方案:
-
检查坐标格式是否正确,确保latitude和longitude是有效的数值格式
-
尝试只传入坐标参数,不传name和address:
uni.openLocation({
latitude: latitude,
longitude: longitude,
success: () => {
console.log('success');
}
});
- 如果必须显示名称,可以尝试将name参数设置为空字符串:
uni.openLocation({
latitude: latitude,
longitude: longitude,
name: '',
address: '',
success: () => {
console.log('success');
}
});