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.
Versuchen Sie die obige Syntax. Ich hoffe, es hilft
https://www.google.com/maps/place/?q=place_id:ChIJp4JiUCNP0xQR1JaSjpW_Hms
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
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
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>
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