2015-06-16 12 views
11

HeIIo, utilizzando Google Maps API con ricerca Sono in grado di trovare un determinato luogo e quindi memorizzarne i dettagli. Tuttavia, l'array non contiene il link di google maps che aprirebbe questo posto su google maps.Collegamento di Google Maps da place_id

Tramite API ricevo place_id che, come ritengo, dovrebbe essere sufficiente per creare un collegamento completo a google maps; tuttavia, non riesco a trovare un modo per farlo. Qualcuno può consigliarmi su come farlo.

Grazie per il vostro tempo.

+0

Sto avendo lo stesso problema in un'app per Android che sto costruendo. Se la risposta riportata di seguito è corretta, sembra ridicolo dover utilizzare il place_id restituito per creare un'altra richiesta URL per ottenere la CID corretta –

risposta

3

Non c'è documentazione per i parametri previsti su https://www.google.com/maps/place, quindi questo può essere solo una soluzione (almeno per il momento funziona per me).

Il seguente URL formato sembra dare il risultato desiderato, nella maggior parte dei casi:

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

Si può creare questo URL in base al toponimo ed il luogo geometria

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

C'è un modo per ottenere sempre l'URL giusto ma richiede una richiesta aggiuntiva.

È possibile utilizzare il place_id per ottenere i dettagli posto con https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

La risposta che ha un campo [ 'risultato'] [ 'url'] che si apre sempre al posto giusto. es. https://maps.google.com/?cid=10254754059248426663

+0

Ricevo la RICHIESTA NON VALIDA con quello – VitalyB

+0

È necessario utilizzare ServerAPIKey. Conquista questa risposta: http://stackoverflow.com/a/24235630/4457396 – oyalhi

20

Prova sopra sintassi. Spero che aiuti

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

Semplice, senza ulteriori richieste al server. –