Seb*_*min 12 google-maps google-maps-api-3 google-places-api
我使用了Google Place详细信息API来获取包含地点的纬度/经度坐标的地方详细信息.
当我使用通用跨平台地图网址启动Google地图时,它无法识别地点.
例如,
https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJbf8C1yFxdDkR3n12P4DkKt0&key=XXXXXXXX
Run Code Online (Sandbox Code Playgroud)
返回地点详细信息,包括以下位置数据:
{
.....
"geometry": {
"location": {
"lat": 27.1750151,
"lng": 78.0421552
},
"viewport": {
"northeast": {
"lat": 27.1770292,
"lng": 78.04537599999999
},
"southwest": {
"lat": 27.16897280000001,
"lng": 78.0388188
}
}
},
.....
"name": "Taj Mahal",
"place_id": "ChIJbf8C1yFxdDkR3n12P4DkKt0",
.....
}
Run Code Online (Sandbox Code Playgroud)
但是,当用于创建带有方向图操作的地图URL时,此数据不会在目标字段中提供正确的位置.
Google地图网址:https://www.google.com/maps/dir/?api = 1&destination = 27.1750151,78.0421552&destination_place_id=ChIJbf8C1yFxdDkR3n12P4DkKt0
目的地不显示为地点.仅使用lat/lng或地址,如下所示.
正确/预期的结果如下.看看目的地.
更新
问题似乎是PlaceID与地图网址中的lat/lng坐标不匹配.Place Details API提供的lat/lng似乎不一致.
URL下方有效
但27.1750151,78.0421552,15z不是Place details API的坐标.PlaceDetails API返回的lat/lng是27.1750151,78.0421552.
,15z我认为这是缩放级别的差异.
当提供纬度/经度时,该destination参数看起来完全胜过该参数,从而导致坐标上的反向地理编码。destination_place_id在以下示例 URL 中,我使用ChIJj61dQgK6j4AR4GeTYWZsKWw与加利福尼亚州山景城 Googleplex 相对应的地点 ID 作为 ;destination_place_id以及泰姬陵的纬度/经度作为destination;请注意,Googleplex 查询被忽略,并且执行反向地理编码,仅获取印度的地址:
因此,解决方法是不使用纬度/经度作为destination参数。我已经用各种字符串(地名、地址、乱码)作为该参数进行了测试,并且destination_place_id似乎取代了它,这是所需的行为。当仅使用.(句点)作为通用值时,将提供地点名称和地址:
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |