Routenzusammenfassungen mit der Suche entlang der Route kombinieren
Sie können Berechnungen der Routenzusammenfassung mit der Suche entlang einer Route kombinieren. In diesem Fall gibt Text Search (New) die Reisedauer und die Entfernung zu jedem Ort in der Antwort zurück und dann von jedem Ort zum endgültigen Ziel der Route.
So verwenden Sie Text Search (neu), um die Routenübersicht zusammen mit der Suche entlang einer Route zu berechnen:
-
Verwenden Sie die Routes API, um eine Route zu berechnen, die in der Antwort eine Routen-Polylinie zurückgibt.
-
Mit dem Parameter
searchAlongRouteParameters.polyline.encodedPolylinekönnen Sie die Polylinie der Route an Text Search (New) übergeben, um 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 dasroutingSummaries-Array enthält. Dieses Array enthält die Dauer und die Entfernung vom Startpunkt der Route zu jedem Ort in der Antwort.
Mit dem APIs Explorer können Sie Liveanfragen senden, um sich mit der API und den API-Optionen vertraut zu machen:
Standardmäßig wird bei der Textsuche (neu) die gesamte Route durchsucht:
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 legs Array gibt die Text Search (New) eine Fahrzeit mit zwei Abschnitten zurück:
-
Der erste Abschnitt enthält die Reisedauer und die Entfernung vom Startort zum Ort. In diesem Beispiel betragen die Dauer und die Entfernung vom Startpunkt zum ersten Ort in den Ergebnissen 285 Sekunden und 1.616 Meter.
-
Der zweite Abschnitt enthält die Reisedauer und die Entfernung vom Ort zum Ziel der Route. In diesem Beispiel betragen die Dauer und die Entfernung 2.466 Sekunden und 58.147 Meter.
Routingursprung, Mobilitätsform und Routenmodifikatoren angeben
Sie können die Berechnung der Such- und Routenzusammenfassung ändern, indem Sie den Startpunkt der Route, die Mobilitätsform, Routenmodifikatoren und Routeneinstellungen angeben. Der Mobilitätsmodus und die Routenmodifikatoren funktionieren genauso wie bei der Berechnung von Routenzusammenfassungen ohne Angabe einer Route, wie im Thema Mobilitätsoptionen angeben beschrieben.
Standardmäßig enthält der erste Abschnitt jedes Ergebnisses die Entfernung vom Startpunkt, der durch die Polylinie definiert ist, zu jedem Ort. Sie können diese Standardeinstellung jedoch überschreiben, indem Sie in der Anfrage explizit einen Routing-Ursprung angeben. Wenn angegeben, werden im ersten Abschnitt aller Antworten die Entfernungen und die Dauer vom angegebenen Routenstartpunkt angegeben, wobei der Startpunkt aus der Polylinie überschrieben wird.
Im nächsten Beispiel geben Sie als Startpunkt der Route die Koordinaten von San Mateo, Kalifornien, an, legen fest, dass Mautstraßen vermieden werden sollen, und setzen die Anzahl der Ergebnisse auf 5:
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'In der folgenden Abbildung sehen Sie eine Karte mit der Polylinie der Route, dem neuen Startpunkt (hellblaue Markierung) und den Orten in den Suchergebnissen (grüne Markierungen). Alle Ergebnisse liegen auf der Route, aber hinter San Mateo:
Testen!
Mit dem APIs Explorer können Sie Beispielanfragen erstellen, um sich mit der API und den API-Optionen vertraut zu machen.
Wählen Sie rechts auf der Seite das API-Symbol api aus.
Bearbeiten Sie optional die Anfrageparameter.
Wählen Sie den Button Ausführen aus. Wählen Sie im Dialogfeld das Konto aus, das Sie für die Anfrage verwenden möchten.
Wählen Sie im APIs Explorer-Bereich das Vollbildsymbol fullscreen aus, um das APIs Explorer-Fenster zu maximieren.