我一直试图从坐标网址(例如
)打开Google地图(特别是在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"给用户并期望他们认出奥马哈海滩。
由于
答案 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
我希望这有帮助!