2015-06-16 4 views
11

HeIIo, используя API-интерфейс google map с поиском Я могу найти определенное место, а затем сохранить его детали. Однако массив не содержит ссылку на карты Google, которая откроет это место на картах Google.Получение ссылки на Google Maps из place_id

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

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

+0

У меня такая же проблема в приложении для Android, которое я создаю. Если приведенный ниже ответ верен, кажется смешным, что нужно использовать возвращенный place_id для создания другого URL-запроса для получения правильного идентификатора CID –

ответ

3

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

Существует способ получения правильного URL-адреса, но для этого требуется дополнительный запрос.

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

Отклик от имеет поле [ «результат»] [ «URL»], который всегда открывает нужное место. например. https://maps.google.com/?cid=10254754059248426663

+0

. Я получаю БЕСПЛАТНЫЙ ЗАПРОС с этим – VitalyB

+0

Вам необходимо использовать ServerAPIKey. Ответ на этот ответ: http://stackoverflow.com/a/24235630/4457396 – oyalhi

20

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

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

Простой, без дополнительного запроса на сервер. –

Смежные вопросы