2015-06-16 8 views
11

HeIIo, używanie google map API z wyszukiwaniem Jestem w stanie znaleźć określone miejsce, a następnie zapisać jego szczegóły. Jednak tablica nie zawiera linków google maps, które otwierałyby to miejsce na mapach google.Uzyskiwanie linku do serwisu Google Maps z place_id

Via API Otrzymuję place_id, który, jak mi się wydaje, powinien wystarczyć do zbudowania pełnego linku map google; jednak nie mogę znaleźć sposobu, aby to zrobić. Czy ktoś może mi doradzić, jak to zrobić?

Dziękuję za poświęcony czas.

+0

Mam ten sam problem w aplikacji na Androida, którą buduję. Jeśli poniższa odpowiedź jest poprawna, wydaje się niedorzeczne, aby użyć zwróconego place_id do utworzenia kolejnego żądania adresu URL, aby uzyskać poprawny identyfikator CID –

Odpowiedz

3

Brak dokumentacji dotyczącej oczekiwanych parametrów na https://www.google.com/maps/place, więc może to być tylko obejście (przynajmniej obecnie działa dla mnie).

Następujący adres URL format wydaje się dawać pożądany wynik w większości przypadków:

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

Użytkownik może tworzyć tego adresu na podstawie nazwy miejscowości i miejsce geometrii

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

Istnieje sposób na uzyskanie prawidłowego adresu URL, ale wymaga to dodatkowego żądania.

Można użyć place_id, aby uzyskać szczegółowe informacje o miejscu z https://maps.googleapis.com/maps/api/place/details/json?key=YOURAPIKEY&placeid=THEPLACEID

odpowiedź od tego ma wynik [ „”] [ „url”] pole, które zawsze otwiera się we właściwym miejscu. np. https://maps.google.com/?cid=10254754059248426663

+0

Otrzymuję INVALID PROŚBĘ z tym – VitalyB

+0

Musisz użyć ServerAPIKey. Łup w tej odpowiedzi: http://stackoverflow.com/a/24235630/4457396 – oyalhi

20

Spróbuj powyżej składni. Mam nadzieję, że pomaga to

+1

Prosty, bez dodatkowego żądania do serwera. –