簡體   English   中英

從 place_id 獲取 Google 地圖鏈接

[英]Getting Google Maps link from place_id

HeIIo,使用谷歌 map API 進行搜索,我能夠找到某個地方,然后存儲它的詳細信息。 但是,該數組不包含谷歌地圖鏈接,該鏈接會在谷歌地圖上打開這個地方。

通過 API 我收到 place_id ,我覺得應該足以建立一個完整的谷歌地圖鏈接; 但是,我找不到這樣做的方法。 任何人都可以建議我如何做到這一點。

感謝您的時間。

試試下面的語法。 我希望它有幫助

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

如果placeId不存在,這是一個官方網址,用於搜索帶有回退到addressplaceId

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

無需令牌,適用於 Android、iOS(以及 iOS 11)和網絡

有一種方法可以始終獲取正確的 URL,但它確實需要額外的請求。

您可以使用 place_id 通過https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID獲取地點詳細信息

來自它的響應有一個 ['result']['url'] 字段,它總是打開正確的位置。 例如。 https://maps.google.com/?cid=10254754059248426663

https://www.google.com/maps/place上沒有有關預期參數的文檔,因此這可能只是一種解決方法(至少它目前對我有用)。

在大多數情況下,以下 URL 格式似乎可以提供所需的結果:

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

您可以根據地名和地點幾何創建此 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);
 <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>

您可以使用 google embed API,並將 src 作為鏈接:例如:

 https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY
  &q=place_id:YOUR_PLACE_ID

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

您可以使用 google embed API,並將 src 作為鏈接:例如:

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

沒有 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

nearbysearch應用程序在谷歌地圖中將用戶重定向到所需位置(從附近搜索 API 返回)時遇到了同樣的問題。

他們在上面提到:

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

如果您在瀏覽器中打開此鏈接,它將在 google map 網站上顯示一個位置。

但是如果您嘗試在手機上打開此鏈接,它將打開 google map 應用程序(如果它存在於用戶的手機上)並且不會重定向到 safari。 此外,谷歌 map 應用程序未顯示該位置(該鏈接僅適用於瀏覽器)。

在測試了創建鏈接以在 google map 應用程序和瀏覽器中工作的多種方法之后,最好的方法是顯示一個地方只是在鏈接中傳遞locationplace_id

let url = "https://www.google.com/maps/search/?api=1&query=\(placeLatitude)%2C\(placeLongitude)&query_place_id=\(placeId)"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM