web-dev-qa-db-de.com

Google Maps-Link von place_id abrufen

Wenn Sie Google Maps API für die Suche verwenden, kann ich einen bestimmten Ort finden und seine Details speichern. Das Array enthält jedoch keinen Google Maps-Link, der diesen Ort auf Google Maps öffnen würde. 

Über die API erhalte ich place_id, die meines Erachtens ausreichen sollte, um einen vollständigen Google Maps-Link zu erstellen. Ich finde jedoch keinen Weg, das zu tun. Kann mir jemand raten, wie das geht.

Vielen Dank für Ihre Zeit.

14
A L

Versuchen Sie die obige Syntax. Ich hoffe, es hilft

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

Hier ist eine offizielle URL zum Suchen einer placeId mit einem Fallback auf eine address, falls die placeId nicht existiert

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

kein Token erforderlich, funktioniert auf Android, iOS (sowie iOS 11) und im Web

6
Kirill Kulakov

Es gibt eine Möglichkeit, immer die richtige URL zu erhalten, es ist jedoch eine zusätzliche Anfrage erforderlich.

Sie können die place_id verwenden, um die Ortsdetails mit https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID abzurufen.

Die Antwort darauf hat ein Feld ['Ergebnis'] ['URL'], das immer den richtigen Ort öffnet. z.B. https://maps.google.com/?cid=10254754059248426663

5
Bartek Juszczak

Es gibt keine Dokumentation für die erwarteten Parameter unter https://www.google.com/maps/place - . Daher kann dies nur eine Problemumgehung sein (zumindest funktioniert es derzeit für mich).

Das folgende URL-Format scheint in den meisten Fällen das gewünschte Ergebnis zu liefern:

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

Sie können diese URL basierend auf dem Ortsnamen und der Ortsgeometrie erstellen

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

Sie können die API zum Einbinden von Google verwenden und src als Link verwenden: ZB: 

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

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

0
TomoMiha