Google地图:按坐标打开网址,但会显示位置名称

时间:2018-02-13 07:22:12

标签: android google-maps reverse-geocoding google-maps-urls

我一直试图从坐标网址(例如

)打开Goog​​le地图(特别是在Android上,但不一定)
https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754

但是当地图打开时,我希望它显示位置名称,例如" Tower Bridge"。不是坐标51.5055,-0.0754

我尝试了类似

的内容
https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754&query_place_id=Tower+Bridge
没有运气。当地图打开时,它会显示坐标,而不是地名。

我可以和#34;注射"位置名称(类似https://....&location_name=Traitors+Gate),和/或地图名称(反向地理编码)从坐标中显示。

动机:坐标比位置名称更准确,更不明确。例如,有耶路撒冷,俄亥俄州和耶路撒冷,以色列,这是世界的半个世界。或者," Palais de Louvre"这只是一栋建筑,但是有四栋街道上的一栋巨大建筑,有多个入口。坐标解决这些问题,但它们不是人类可读的#34;。你无法呈现" 49.3697,0.8711"给用户并期望他们认出奥马哈海滩。

由于

1 个答案:

答案 0 :(得分:1)

很遗憾,Google地图网址并不支持此类发送标签。您应该发送有效的地点ID值,以便在Google地图应用中获得该地点的正确标题。

您需要执行一个额外步骤。对坐标执行反向地理编码请求并获取地点ID。

https://maps.googleapis.com/maps/api/geocode/json?latlng=51.5055%2C-0.0754&language=en&key=YOUR_API_KEY

这将返回Tower Bridge的地点ID ChIJlRsEuUgDdkgRSM7ciIhVooM。在Geocoder工具中查看此示例:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3D51.5055%252C-0.0754

您可以在GitHub上找到适用于Google Maps API Web服务的Java客户端库:

https://github.com/googlemaps/google-maps-services-java

您可以使用此库执行地理编码请求,也可以使用Places API附近的搜索来获取最近的位置。请注意,Web服务需要不同的API密钥,因为它们不支持您在Maps Android API的API密钥中使用的Android应用限制。

获得地点ID值后,只需创建Google地图网址链接即可。 E.g。

https://www.google.com/maps/search/?api=1&query=51.5055,-0.0754&query_place_id=ChIJlRsEuUgDdkgRSM7ciIhVooM

我希望这有帮助!