Dieses Dokument ist eine Aktualisierung eines älteren Artikels, in dem frühere Versionen der GMP APIs verwendet wurden. Diese Inhalte wurden auf die neue Version der Places API (2023–24) und der Routes API (2023) aktualisiert.
Wenn der Nutzer zu einem POI fährt, benötigt er in der Regel eine Navigation zu einem nahe gelegenen Ort wie einem Parkplatz oder einem Zugangspunkt. Stellen Sie sich einen Fahrer vor, der zum Flughafen oder zu einem Einkaufszentrum fahren muss. Wenn ein Fahrer zu einem Flughafen fährt, möchte er ein Terminal oder einen Abholpunkt erreichen und nicht das Zentrum des Flughafengeländes. Ebenso kann ein Parkplatz neben dem Einkaufszentrum für einen Nutzer mit Auto eine viel bessere Option sein. In diesem Fall müssen Sie bei der Entwicklung einer App oder eines Dienstes, der den Fahrer führen soll, zuerst den Zielort ermitteln und dann dem Fahrer optionale Ziele in der Nähe dieses Orts anbieten. Mit diesem Ansatz können Sie Ihren Kunden einen besseren Service bieten und zeigen, dass Sie ihre Zeit schätzen. Dazu sind nur kleine, aber intelligente Entwicklungsanstrengungen erforderlich, bei denen Standortdaten der Google Maps Platform genutzt werden.
Wir zeigen Ihnen, wie Sie die neue Places API und die Routes API nacheinander oder in Kombination verwenden können, um den richtigen Ort zum Parken in der Nähe Ihres Ziels zu ermitteln. Mit dieser Lösung soll die Unsicherheit und die Anzahl der Interaktionen beim Suchen nach einem Parkplatz vermieden werden, wenn Sie sich dem Ziel nähern. Sehen Sie sich zwei Beispiele an, wie diese Fälle im Detail implementiert werden könnten.
Beispiel 1: Eine Sehenswürdigkeit ohne Parkplatz
Wählen Sie einen Ort aus, der nicht direkt an eine Straße angrenzt, damit eine Route separat abgerufen werden muss. Das Ziel ist Notre Dame in Paris und als Ausgangspunkt verwenden wir den Bahnhof Gare de l'Est (48.87697775149635, 2.3592247806755564).
Der Fahrer verlässt den Bahnhof etwa 16 Minuten nördlich von Notre-Dame. Notre-Dame ist eine berühmte Touristenattraktion auf einer Insel mit Brückenzugang, einigen Einbahnstraßen und keinem großen Parkplatz in der Nähe. Das sollte also eine interessante Herausforderung sein.
- Places API-Anfrage
In dieser Beispielanfrage der Places API wird die Textsuche verwendet, um Notre Dame zu finden. Weitere Informationen finden Sie in der Entwicklerdokumentation. „$APIKEY“ in diesen Beispielen ist der API-Schlüssel, den Sie für die Google Maps Platform Places API und die Google Maps Platform Routes API haben, die in der Google Cloud Console aktiviert sind. Eine ausführlichere Erklärung finden Sie in der Dokumentation zu den ersten Schritten mit der Google Maps Platform.
Die neuen Places API-Anfragen haben ein neues Format. Die Antwortfelder sind nicht mehr festgelegt und als Entwickler müssen Sie im Header eine Feldmaske definieren. Die Verwendung der Feldmaske ist in der Dokumentation definiert.
curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'
Mit „notre_date.json“-Inhalten für Suchparameter:
{
"textQuery": "Notre Dame, Paris",
"languageCode": "en"
}
Die Antwort auf die obige Anfrage enthält die folgenden Breiten- und Längengradkoordinaten:
{
"places": [
{
"id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
"formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
"location": {
"latitude": 48.852968200000007,
"longitude": 2.3499021
},
"displayName": {
"text": "Cathédrale Notre-Dame de Paris",
"languageCode": "en"
}
}
]
}
Wie Sie sehen, liegen die Koordinaten tatsächlich bei Notre-Dame.
Als Entwickler oder Dienstanbieter sollten Sie den Fahrer automatisch fragen: „Suchen Sie einen Parkplatz in der Nähe von Notre Dame?“ Wenn der Fahrer ein Elektrofahrzeug hat, können Sie nach einer Ladestation suchen. Die Nutzerfreundlichkeit hängt vom Gerät und vom Bildschirm ab. In diesem Fall kann es jedoch sinnvoll sein, einen unauffälligen Dialogtext zu verwenden, der nach kurzer Zeit verschwindet. Wenn Sie Parkplätze in der Nähe des Notre Dame suchen möchten, führen Sie eine Nearby Search in der Places API mit den Typen „parking“ und „electric_vehicle_charging_station“ mit einem Radius von 500 Metern aus. Im folgenden Beispiel werden die Ergebnisse auf Parkplätze im Umkreis von 500 Metern um Notre Dame beschränkt.
curl -X POST -d '{
"includedTypes": ["parking", "electric_vehicle_charging_station"],
"maxResultCount": 10,
"rankPreference": "DISTANCE",
"locationRestriction": {
"circle": {
"center": {
"latitude": 48.852968200000007,
"longitude": 2.3499021},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby
Das erste Ergebnis ist eine Ladestation bei 48.854981, 2.350629. Wenn Sie dieses Beispiel ausführen, können Ihre Ergebnisse jedoch variieren. Verwenden Sie diesen Standort im nächsten Teil, in dem wir eine Routes API-Anfrage senden.
- **Anfrage an die Routes API **
Wenn Sie die Route vom Bahnhof zu einer Ladestation in der Nähe von Notre-Dame ermitteln möchten, müssen Sie eine Routes API-Anfrage stellen. Legen Sie dazu einfach die Parameter für den Ursprung und das Ziel fest. Weitere Optionen finden Sie in der Entwicklerleitfaden.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 48.87697775149635,
"longitude": 2.3592247806755564
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 48.854981,
"longitude": 2.350629
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Die Routes API-Antwort enthält in der Regel mehrere Routenvorschläge. Wenn Sie die Routendaten in die Antwort aufnehmen möchten, definieren Sie „routes.legs“ in der Feldmaske. Jede Route besteht aus mehreren „Etappen“ und diese enthalten mehrere „Schritte“, die die zurückgelegte Strecke und die Koordinaten anzeigen. Die Koordinaten des Endpunkts, der mit dem Auto erreichbar ist, finden Sie im Feld „endLocation“ des letzten Schritts der letzten Etappe einer ausgewählten Route. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
Dieser Standort mag nicht die erste Wahl sein, aber wenn Sie sich die Karte oder Google Street View ansehen, sehen Sie, dass dieser Ort nur etwa 6 bis 7 Minuten zu Fuß von Notre-Dame entfernt ist.
Fußweg von der Ladestation zum Parkplatz der Notre-Dame
Zusammenfassung für Beispiel 1
Wie Sie sehen, sind für die Suche nach einem Parkplatz für ein Auto nur wenige API-Aufrufe erforderlich und der Fahrer muss den Vorschlag nur sehen. So sparen Ihre Nutzer Zeit, da sie nicht in Einbahnstraßen herumfahren oder an einer überfüllten Touristenattraktion nach einem Parkplatz suchen müssen. Zusammenfassend haben wir die folgenden API-Anfragen gestellt:
- Places API-Textsuchanfrage, um die Koordinaten des Notre Dame zu ermitteln
- Eine Nearby Search-Suche mit der Places API, um einen Parkplatz mit einer Ladestation für Elektrofahrzeuge in einem Umkreis von 500 Metern um diese Koordinaten zu finden
- Eine Routes API-Anfrage, um eine Route zur Ladestation zu finden
Beispiel 2: Wegbeschreibung zu einem Terminal in einem großen Flughafen
Betrachten wir ein weiteres Beispiel, bei dem der Fahrer ein großes Gebiet mit mehreren Standorten, POIs oder potenziellen Abholstellen erreichen möchte. Der Fahrer startet am Wembley-Stadion im Vereinigten Königreich (51.557263604707224, -0.2794575145680608) und möchte zum Terminal 5 des Flughafens London Heathrow fahren.
Das Tolle an der neuen automatischen Vervollständigung der Places API ist die Möglichkeit, einen primären Typ als Suchkriterien in Kombination mit der API-Vorhersage von Unterkünften als potenzielle Suchergebnisse zu definieren. In diesem Fall werden bei der Suche nach einem Flughafen auch Terminals zurückgegeben. Eine vollständige Liste der Typen, die ein- oder ausgeschlossen werden können, finden Sie in der Dokumentation.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
Die obige Abfrage liefert eine Liste der Terminals und der einzelnen Abgabestellen an diesen Terminals. In der Ergebnisliste finden wir „London Heathrow Airport Terminal 5“ und seine Orts-ID:
"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",
Mit dem Parameter „placeId“ können wir der Routes API mitteilen, dass wir einen Ort und nicht beliebige Koordinaten erreichen möchten.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 51.557263604707224,
"longitude": -0.2794575145680608
}
}
},
"destination":{
"placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Wie im vorherigen Beispiel finden Sie auch hier in der JSON-Antwort in den einzelnen Schritten die Koordinaten für den letzten Teil der Route und die Endpositionen (51.4714348, „longitude“: -0.48967890000000003).
Zusammenfassung für Beispiel 2
Wie im vorherigen Beispiel ist der Entwicklungsaufwand für eine verbesserte Wegbeschreibung für den Fahrer sehr gering und die Zeitersparnis für den Fahrer ist messbar. Wir haben die folgenden Anfragen gestellt:
- Eine Places API-Anfrage vom Typ „Autocomplete (new)“, um Terminal 5 des Flughafens Heathrow zu finden
- Eine Routes API-Anfrage, um eine Route von Wembley zum Terminal 5 zu erhalten
In diesem Beispiel werden nur einige der neuen Funktionen der Places API vorgestellt. Sehen Sie sich einige der neuen Ortstypen an, z. B. Start- und Landebahn und internationaler Flughafen.
Fazit
Wie Sie sehen, ist der Entwicklungsaufwand für einen Premium-Service für Ihre Kunden, die mit dem Auto unterwegs sind, eher gering. Außerdem können Sie so zeigen, dass Sie die Bedürfnisse Ihrer Kunden im Blick haben.
Für Entwicklungszwecke können Sie viele der verfügbaren Bibliotheken und Tools verwenden, um die Dienste für Ihre Kunden zu erstellen. Sehen Sie sich unser öffentlich verfügbares GitHub-Repository für die Google Maps Platform an.
Nächste Aktionen
Erste Schritte mit der GMP : https://developers.google.com/maps/get-started
Empfohlene weiterführende Literatur
Neue Dokumentation zum Autocomplete der Places API: https://developers.google.com/maps/documentation/places/web-service/place-autocomplete
Dokumentation zur Routes API: https://developers.google.com/maps/documentation/routes
Beitragende
Hauptautor: Mikko Toivanen | Google Maps Platform Solutions Engineer