it-swarm.com.ru

Получение ссылки Google Maps от place_id

HeIIo, используя Google Map API с поиском, я могу найти определенное место, а затем сохранить его детали. Тем не менее, массив не содержит ссылку Google Maps, которая открыла бы это место на Google Maps. 

Через API я получаю place_id, которого, как мне кажется, должно хватить для создания полной ссылки на Google Maps; Однако я не могу найти способ сделать это. Может кто-нибудь посоветовать мне, как это сделать.

Спасибо за ваше время.

14
A L

Попробуйте приведенный выше синтаксис. Я надеюсь, что это помогает

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

Вот официальный URL для поиска placeId с откатом до address, если placeId не существует

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

токен не требуется, работает на Android, iOS (а также iOS 11) и в Интернете

6
Kirill Kulakov

Есть способ всегда получить правильный URL, но он требует дополнительного запроса.

Вы можете использовать place_id для получения информации о месте с помощью https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

Ответ от этого имеет поле ['result'] ['url'], которое всегда открывает правильное место. например. https://maps.google.com/?cid=10254754059248426663

5
Bartek Juszczak

Нет документации по ожидаемым параметрам на 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>

5
Dr.Molle

Вы можете использовать API Google Embed и использовать 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

0
TomoMiha