Łączenie podsumowań tras z wyszukiwaniem na trasie
Możesz połączyć obliczenia podsumowania trasy z wyszukiwaniem na trasie. W takim przypadku 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ć wyszukiwania tekstowego (nowego) do obliczenia podsumowania trasy 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ć polilinię trasy do wyszukiwania tekstowego (nowego) i ukierunkować wyniki wyszukiwania na trasę. Odpowiedź zawiera miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy. -
Uwzględnij
routingSummariesw masce pola, aby odpowiedź zawierała tablicęroutingSummaries. Ta tablica zawiera czas trwania i odległość od punktu 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 wyszukiwanie tekstowe (nowe) 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: tablicę places zawierającą pasujące miejsca i tablicę routingSummaries zawierającą czas i odległość 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" }, … ] }
Dla każdego wpisu w tablicy legs wyszukiwanie tekstowe (nowe) zwraca dwuetapowy czas podróży:
-
Pierwszy etap zawiera czas podróży i odległość od miejsca początkowego do miejsca docelowego. W tym przykładzie czas trwania i odległość od miejsca początkowego do pierwszego miejsca w wynikach wynosi 285 sekund i 1616 metrów.
-
Drugi odcinek zawiera czas podróży i odległość od miejsca do miejsca docelowego trasy. W tym przykładzie czas trwania i odległość to 2466 sekund i 58 147 metrów.
Określanie punktu początkowego trasy, środka transportu i modyfikatorów trasy
Możesz zmodyfikować obliczenia podsumowania wyszukiwania i trasy, określając miejsce początkowe trasy, środek transportu, 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 temacie Określanie opcji podróży.
Domyślnie pierwszy etap każdego wyniku zawiera odległość od punktu początkowego zdefiniowanego przez łamaną do każdego miejsca. Możesz jednak zastąpić tę wartość domyślną, wyraźnie określając w żądaniu miejsce początkowe trasy. Jeśli jest określony, pierwszy odcinek wszystkich odpowiedzi określa odległości i czas trwania od określonego punktu początkowego trasy, zastępując punkt początkowy z linii łamanej.
W następnym przykładzie określasz punkt początkowy trasy jako współrzędne San Mateo w Kalifornii, ustawiasz unikanie opłat i 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 poniższym obrazie widać mapę z polilinią trasy, nowym punktem 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 kliknij ikonę interfejsu API api.
Opcjonalnie możesz edytować parametry żądania.
Kliknij przycisk Wykonaj. W oknie wybierz konto, którego chcesz użyć do wysłania prośby.
W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno narzędzia APIs Explorer.