web-dev-qa-db-fra.com

Obtenir le lien Google Maps depuis place_id

HeIIo, en utilisant Google Map API avec la recherche, je suis capable de trouver un certain endroit et ensuite stocker ses détails. Cependant, le tableau ne contient pas de lien google maps qui ouvrirait cet endroit sur google maps. 

Via API, je reçois place_id qui, à mon avis, devrait suffire à créer un lien Google Maps complet. Cependant, je ne peux pas trouver un moyen de le faire. Quelqu'un peut-il me conseiller sur la façon de procéder?.

Merci pour votre temps.

14
A L

Essayez la syntaxe ci-dessus. J'espère que ça aide

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

Voici une URL officielle pour rechercher une placeId avec un repli sur une address si la placeId n'existe pas

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

aucun jeton requis, fonctionne sur Android, iOS (ainsi que iOS 11) et Web

6
Kirill Kulakov

Il existe un moyen de toujours obtenir la bonne URL, mais cela nécessite une demande supplémentaire.

Vous pouvez utiliser le lieu_id pour obtenir les détails du lieu avec https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

La réponse de celle-ci a un champ ['result'] ['url'] qui ouvre toujours le bon endroit. par exemple. https://maps.google.com/?cid=10254754059248426663

5
Bartek Juszczak

Il n'y a pas de documentation pour les paramètres attendus sur https://www.google.com/maps/place , ce qui peut ne constituer qu'une solution de contournement (au moins, cela fonctionne actuellement pour moi).

Le format d'URL suivant semble donner le résultat souhaité dans la plupart des cas:

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

Vous pouvez créer cette URL en fonction du nom de lieu et de la géométrie du lieu.

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

Vous pouvez utiliser l'API intégrée de Google et utiliser src comme lien: , Par exemple: 

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

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

0
TomoMiha