Routenzusammenfassungen mit der Suche entlang der Route kombinieren
Sie können Routenzusammenfassungen mit der Suche entlang einer Route kombinieren. In diesem Fall gibt die Text Search (New) in der Antwort die Reisedauer und ‑strecke zu jedem Ort und von jedem Ort zum Zielort der Route zurück.
So verwenden Sie die Text Search (New), um die Routenzusammenfassung zusammen mit der Suche entlang einer Route zu berechnen:
-
Verwenden Sie die Routes API, um eine Route zu berechnen, die in der Antwort eine Routenpolylinie zurückgibt.
-
Verwenden Sie den
searchAlongRouteParameters.polyline.encodedPolylineParameter, um die Routenpolylinie an die Text Search (New) zu übergeben und die Suchergebnisse auf die Route auszurichten. Die Antwort enthält dann Orte, die den Suchkriterien entsprechen und sich in der Nähe der angegebenen Route befinden. -
Fügen Sie
routingSummariesin die Feldmaske ein, damit die Antwort dasroutingSummariesArray enthält. Dieses Array enthält die Dauer und Entfernung vom Routenursprung zu jedem Ort in der Antwort.
Mit dem APIs Explorer können Sie Live-Anfragen stellen, um sich mit der API und den API-Optionen vertraut zu machen:
Standardmäßig führt die Text Search (New) die Suche entlang der gesamten Route durch:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'Die Antwort enthält zwei Arrays: das Array places mit den übereinstimmenden Orten und das Array routingSummaries mit der Dauer und Entfernung zu jedem Ort:
{ "places": [ { "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA", "priceLevel": "PRICE_LEVEL_INEXPENSIVE", "displayName": { "text": "Vegan Mob - Vegan BBQ and Soul Food", "languageCode": "en" } }, { "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Enjoy Vegetarian", "languageCode": "en" } }, … ], "routingSummaries": [ { "legs": [ { "duration": "285s", "distanceMeters": 1616 }, { "duration": "2466s", "distanceMeters": 58147 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0" }, { "legs": [ { "duration": "696s", "distanceMeters": 4704 }, { "duration": "2787s", "distanceMeters": 58901 } ], "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0" }, … ] }
Für jeden Eintrag im Array legs gibt die Text Search (New) eine Reisezeit für zwei Etappen zurück:
-
Die erste Etappe enthält die Reisedauer und ‑strecke vom Ursprung zu dem Ort. In diesem Beispiel beträgt die Dauer und Entfernung vom Ursprung zum ersten Ort in den Ergebnissen 285 Sekunden und 1.616 Meter.
-
Die zweite Etappe enthält die Reisedauer und ‑strecke vom Ort zum Zielort der Route. In diesem Beispiel beträgt die Dauer und Entfernung 2.466 Sekunden und 58.147 Meter.
Routenursprung, Reisemodus und Routenmodifikatoren angeben
Sie können die Suche und die Berechnung der Routenzusammenfassung ändern, indem Sie den Routenursprung, den Reisemodus, Routenmodifikatoren und Routeneinstellungen angeben. Der Reisemodus und die Routenmodifikatoren funktionieren genauso wie bei der Berechnung von Routing Zusammenfassungen ohne Angabe einer Route, wie im Thema Reiseoptionen angeben beschrieben.
Standardmäßig enthält die erste Etappe jedes Ergebnisses die Entfernung vom Ursprung, der durch die Polylinie definiert wird, zu jedem Ort. Sie können diese Standardeinstellung jedoch überschreiben, indem Sie in der Anfrage explizit einen Routenursprung angeben. Wenn angegeben, enthält die erste Etappe aller Antworten die Entfernungen und die Dauer vom angegebenen Routenursprung, wodurch der Ursprung aus der Polylinie überschrieben wird.
Im nächsten Beispiel geben Sie als Routenursprung die Koordinaten von San Mateo, Kalifornien, an, legen fest, dass Mautgebühren vermieden werden sollen, und legen die Anzahl der Ergebnisse auf 5 fest:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food",
"maxResultCount": 5,
"searchAlongRouteParameters": {
"polyline": {
"encodedPolyline": "ROUTE_POLYLINE"
}
},
"routingParameters": {
"origin": {
"latitude": 37.56617,
"longitude": -122.30870
},
"travelMode":"DRIVE",
"routeModifiers": {
"avoidTolls": true
}
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'Die folgende Abbildung zeigt eine Karte mit der Routenpolylinie, dem neuen Ursprung (hellblauer Pin) und den Orten in den Suchergebnissen (grüne Pins). Alle Ergebnisse liegen entlang der Route, aber hinter San Mateo:
Testen!
Mit dem APIs Explorer können Sie Beispielanfragen stellen, um sich mit der API und den API-Optionen vertraut zu machen.
Wählen Sie rechts auf der Seite das API-Symbol api aus.
Optional können Sie die Anfrageparameter bearbeiten.
Wählen Sie die Schaltfläche Ausführen aus. Wählen Sie im Dialogfeld das Konto aus, mit dem Sie die Anfrage stellen möchten.
Wählen Sie im APIs Explorer-Bereich das Vollbildsymbol fullscreen aus, um das APIs Explorer-Fenster zu maximieren.