从place_id获取Google地图链接

A L*_*A L 22 javascript google-maps google-maps-api-3 google-maps-urls

HeIIo,使用谷歌地图API搜索我能找到某个地方,然后存储它的详细信息.但是,该数组不包含谷歌地图链接,这将在谷歌地图上打开这个地方.

通过API我收到place_id,我认为应该足以建立一个完整的谷歌地图链接; 但是,我找不到办法做到这一点.谁能告诉我如何做到这一点.

感谢您的时间.

Sed*_*mcu 60

试试上面的语法.我希望它有所帮助

https://www.google.com/maps/place/?q=place_id:ChIJp4JiUCNP0xQR1JaSjpW_Hms
Run Code Online (Sandbox Code Playgroud)

  • Android上的Google地图说:"不支持的链接:Google地图无法打开此链接" (9认同)
  • 简单,无需服务器的任何其他请求。 (2认同)
  • @slothstronaut 它不适用于 Android。请参阅基里尔·库拉科夫 (Kirill Kulakov) 的答案,了解适用于桌面和移动设备的替代方案。任何“查询”字符串都可以,不一定是地址。 (2认同)

Kir*_*kov 11

这是一个官方网址,用于搜索a 如果不存在则placeId回退addressplaceId

https://www.google.com/maps/search/?api=1&query=<address>&query_place_id=<placeId>

无需令牌,适用于Android,iOS(以及iOS 11)和网络


Dr.*_*lle 6

https://www.google.com/maps/place上没有关于预期参数的文档,因此这可能只是一种解决方法(至少它目前适用于我).

在大多数情况下,以下URL格式似乎可以提供所需的结果:

https://www.google.com/maps/place/[place-name]/@[latitude],[longitude],[zoom]z/
Run Code Online (Sandbox Code Playgroud)

您可以根据地名和地点几何创建此URL

function initialize() {
  var ac = new google.maps.places.Autocomplete(document.getElementById('pac'));
  google.maps.event.addListener(ac, 'place_changed', function() {
    var place = this.getPlace(),
      link = document.getElementById('link');
    if (!place.geometry) {
      link.textContent = '';
    } else {
      var zoom = 17,
        url = 'https://www.google.com/maps/place/' +
        encodeURIComponent(place.name) + '/@' +
        place.geometry.location.toUrlValue() + ',' +
        zoom + 'z/';
      link.href = link.textContent = url;

    }

  });
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places">
</script>
<input id="pac" />
<br/>
<a id="link"  href="" target="_blank"></a>
Run Code Online (Sandbox Code Playgroud)


小智 5

有一种方法可以始终获得正确的URL,但它确实需要额外的请求.

您可以使用place_id来获取地点详细信息 https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

来自它的响应有一个['result'] ['url']字段,它始终打开正确的位置.例如.https://maps.google.com/?cid=10254754059248426663