从place_id获取Google地图链接

时间:2015-06-16 00:41:28

标签: javascript google-maps google-maps-api-3 google-maps-urls

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

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

感谢您的时间。

7 个答案:

答案 0 :(得分:52)

尝试以上语法。我希望它有所帮助

https://www.google.com/maps/place/?q=place_id:ChIJp4JiUCNP0xQR1JaSjpW_Hms

答案 1 :(得分:10)

如果placeId不存在,这是一个官方网址,可以搜索到一个address后备的placeId

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

无需令牌,可在Android,iOS(以及iOS 11)和网络上运行

答案 2 :(得分:6)

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

以下网址格式似乎在大多数情况下都会提供所需的结果:

https://www.google.com/maps/place/[place-name]/@[latitude],[longitude],[zoom]z/

您可以根据地名和地点几何

创建此网址

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);
<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>

答案 3 :(得分:5)

有一种方法可以始终获取正确的网址,但确实需要额外的请求。

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

这样做的回复有一个[&#39;结果&#39;] [&#39; url&#39;]字段,它始终打开正确的位置。 例如。 https://maps.google.com/?cid=10254754059248426663

答案 4 :(得分:1)

没有 place_id 什么对我有用

https://www.google.com/maps/search/<search term>/@<coordinates>,<zoom level>z

示例

https://www.google.com/maps/search/Jouvay+Night+Club/@40.6961111,-73.8041667,15z

答案 5 :(得分:0)

您可以使用google embed API,并将src作为链接: 例如:

data = ("john", "john@snow.com", True, True)
check_list = [username,email,admin,alive]
output = ['same' if i == j else 'diffrent' for i,j in zip(data,check_list)]

文档: https://developers.google.com/maps/documentation/embed/guide#place_mode

答案 6 :(得分:0)

您可以使用google embed API,并使用src作为链接:例如:

https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJN1t_tDeuEmsRUsoyG83frY4&key=YOUR_API_KEY