Łączenie podsumowań tras z wyszukiwaniem na trasie
Możesz łączyć obliczenia podsumowania trasy z wyszukiwaniem na trasie. W takim przypadku usługa Wyszukaj tekst (New) zwraca w odpowiedzi czas podróży i odległość do każdego miejsca, a następnie z każdego miejsca do miejsca docelowego trasy.
Aby użyć usługi Wyszukaj tekst (New) do obliczenia podsumowania routingu wraz z wyszukiwaniem na trasie:
-
Użyj interfejsu Routes API, aby obliczyć trasę, która zwraca linię łamaną trasy w odpowiedzi.
-
Użyj parametru
searchAlongRouteParameters.polyline.encodedPolyline, aby przekazać linię łamaną trasy do usługi Text Search (New) i wpłynąć na wyniki wyszukiwania trasy. Odpowiedź zawiera wtedy miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy. -
Dodaj
routingSummariesdo maski pola, aby odpowiedź zawierała tablicęroutingSummaries. Ta tablica zawiera czas i odległość od miejsca początkowego trasy do każdego miejsca w odpowiedzi.
Narzędzie APIs Explorer umożliwia wysyłanie żądań w czasie rzeczywistym, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami:
Domyślnie usługa Wyszukaj tekst (New) przeprowadza wyszukiwanie na całej trasie:
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'Odpowiedź zawiera 2 tablice: places z pasującymi miejscami i routingSummaries z czasem i odległością podróży do każdego miejsca:
{ "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" }, … ] }
W przypadku każdego wpisu w tablicy legs usługa Wyszukaj tekst (New) zwraca czas podróży dwuetapowej:
-
Pierwszy etap zawiera czas i odległość podróży od miejsca początkowego do miejsca. W tym przykładzie czas i odległość od miejsca początkowego do pierwszego miejsca w wynikach to 285 sekund i 1616 metrów.
-
Drugi etap zawiera czas i odległość podróży od miejsca do miejsca docelowego trasy. W tym przykładzie czas i odległość to 2466 sekund i 58147 metrów.
Określanie miejsca początkowego trasy, trybu podróży i modyfikatorów trasy
Możesz zmodyfikować wyszukiwanie i obliczanie podsumowania trasy, określając miejsce początkowe trasy, tryb podróży, modyfikatory trasy i preferencje dotyczące trasy. Tryb podróży i modyfikatory trasy działają tak samo jak w przypadku obliczania podsumowań tras bez określania trasy, jak pokazano w artykule Określanie opcji podróży.
Domyślnie pierwszy etap każdego wyniku zawiera odległość od miejsca początkowego zdefiniowanego przez linię łamaną do każdego miejsca. Możesz jednak zastąpić tę wartość domyślną, wyraźnie określając miejsce początkowe trasy w żądaniu. Jeśli jest określone, pierwszy etap wszystkich odpowiedzi określa odległości i czas od określonego miejsca początkowego trasy, zastępując miejsce początkowe z linii łamanej.
W następnym przykładzie określasz miejsce początkowe trasy jako współrzędne San Mateo w Kalifornii, określasz, aby unikać opłat, i ustawiasz liczbę wyników na 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'Na ilustracji poniżej widać mapę z linią łamaną trasy, nowym miejscem początkowym (jasnoniebieska pinezka) i miejscami w wynikach wyszukiwania (zielone pinezki). Zwróć uwagę, że wszystkie wyniki znajdują się na trasie, ale za San Mateo:
Wypróbuj
Narzędzie APIs Explorer umożliwia wysyłanie przykładowych żądań, dzięki czemu możesz zapoznać się z interfejsem API i jego opcjami.
Po prawej stronie strony kliknij ikonę interfejsu API api.
Opcjonalnie edytuj parametry żądania.
Kliknij przycisk Wykonaj. W oknie dialogowym wybierz konto, którego chcesz użyć do wysłania żądania.
W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno APIs Explorer.