Łączenie podsumowań tras z wyszukiwaniem na trasie
Obliczenia podsumowania trasy możesz połączyć z wyszukiwaniem na trasie. W takim przypadku zapytanie Text Search (New) zwraca czas i odległość do każdego miejsca w odpowiedzi, a potem od każdego miejsca do miejsca docelowego na trasie.
Aby użyć funkcji wyszukiwania tekstu (nowej) do obliczenia podsumowania trasy wraz z wyszukiwaniem wzdłuż trasy:
-
Użyj interfejsu Routes API, aby obliczyć trasę, która zwraca linię łamaną trasy w odpowiedzi.
-
Użyj parametru
searchAlongRouteParameters.polyline.encodedPolyline
, aby przekazać ścieżkę wieloliniową do wyszukiwania tekstowego (nowego), aby wyniki wyszukiwania były dopasowane do tej ścieżki. Odpowiedź zawiera miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy. -
Uwzględnij
routingSummaries
w polu maski, aby odpowiedź zawierała tablicęroutingSummaries
. Ta tablica zawiera czas i odległość od punktu początkowego do każdego miejsca w odpowiedzi.
Domyślnie wyszukiwanie tekstowe (nowa wersja) wykonuje 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: tablicę places
z odpowiednimi miejscami oraz tablicę routingSummaries
z czasem i odległością do pokonania 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 elementu w tablicy legs
funkcja wyszukiwania tekstu (Nowa) zwraca czas podróży 2 etapów:
-
Pierwszy etap zawiera czas i odległość od miejsca wyjazdu do miejsca docelowego. W tym przykładzie czas i odległość od punktu wyjścia do pierwszego miejsca w wynikach to odpowiednio 285 sekund i 1616 metrów.
-
Drugi etap zawiera czas i odległość podróży od miejsca docelowego do miejsca docelowego trasy. W tym przykładzie czas trwania i odległość to odpowiednio 2466 sekund i 58147 metrów.
Określanie punktu początkowego kierowania ruchem, środka transportu i modyfikatorów trasy
Możesz zmodyfikować obliczenia podsumowania wyszukiwania i wyznaczania trasy, podając punkt początkowy, tryb podróży, modyfikatory trasy i preferencje wyznaczania trasy. Tryb podróży i modyfikatory trasy działają tak samo jak w przypadku obliczania podsumowań trasy bez określania trasy, jak pokazano w temacie Określanie opcji podróży.
Domyślnie pierwszy odcinek każdego wyniku zawiera odległość od punktu początkowego zdefiniowanego przez ścieżkę do każdego miejsca. Możesz jednak zastąpić tę wartość domyślną, wyraźnie określając w żądaniu źródło trasowania. Jeśli jest określony, pierwszy odcinek wszystkich odpowiedzi określa odległości i czas trwania od określonego punktu docelowego trasy, zastępując punkt docelowy z wielokąta.
W następnym przykładzie podajesz punkt początkowy trasy jako współrzędne San Mateo w Kalifornii, zaznaczasz, że chcesz uniknąć opłat za przejazd, a liczba wyników jest ustawiona 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 tym obrazie widać mapę z linią ścieżki, nowym punktem początkowym (jasnoniebieska pinezka) i miejscami w wynikach wyszukiwania (zielone pinezki). Zwróć uwagę, że wszystkie wyniki znajdują się na trasie, ale poza San Mateo: