Łączenie podsumowań tras z wyszukiwaniem miejsc przy trasie
Obliczenia podsumowania wyznaczania trasy możesz łączyć z wyszukiwaniem wzdłuż trasy. W takim przypadku Wyszukiwanie tekstowe (nowe) 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 obliczyć podsumowanie wyznaczania trasy za pomocą wyszukiwania tekstowego (nowego) wraz z wyszukiwaniem wzdłuż trasy:
-
Użyj interfejsu API Trasy, aby obliczyć trasę, która zwraca linię łamaną trasy w odpowiedzi.
-
Użyj parametru
searchAlongRouteParameters.polyline.encodedPolyline
, aby przekazać linię łamaną trasy do wyszukiwania tekstowego (nowego) i skierować wyniki wyszukiwania na trasę. Odpowiedź zawiera miejsca, które pasują do kryteriów wyszukiwania i znajdują się w pobliżu określonej trasy. -
W masce pola umieść
routingSummaries
, aby odpowiedź zawierała tablicęroutingSummaries
. Ta tablica zawiera czas trwania i odległość od punktu początkowego do każdego miejsca w odpowiedzi.
Narzędzie API 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
z pasującymi miejscami i tablicę routingSummaries
z czasem i odległością dojazdu 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
wyszukiwanie tekstu (nowe) zwraca czas podróży dwuetapowej:
-
Pierwszy etap zawiera czas podróży i odległość od miejsca wyjazdu do miejsca docelowego. W tym przykładzie czas trwania i odległość od miejsca początkowego do pierwszego miejsca w wynikach wynoszą 285 sekund i 1616 metrów.
-
Drugi etap zawiera czas trwania podróży i odległość od miejsca do miejsca docelowego trasy. W tym przykładzie czas trwania i odległość to 2466 sekund i 58147 metrów.
Określanie punktu początkowego trasy, środka transportu i modyfikatorów trasy
Możesz zmodyfikować obliczenia podsumowania wyszukiwania i wyznaczania trasy, określając punkt początkowy wyznaczania trasy, tryb podróży, modyfikatory trasy i preferencje dotyczące 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 określonego przez linię łamaną do każdego miejsca. Możesz jednak zastąpić to ustawienie domyślne, wyraźnie określając źródło routingu w żądaniu. Jeśli jest określony, pierwszy etap wszystkich odpowiedzi określa odległości i czas trwania od określonego punktu początkowego routingu, zastępując punkt początkowy z linii łamanej.
W następnym przykładzie jako punkt początkowy trasy podajesz współrzędne San Mateo w Kalifornii, określasz, że chcesz unikać dróg płatnych, 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'
Obraz poniżej przedstawia mapę z linią łamaną trasy, nowym punktem początkowym (jasnoniebieska pinezka) i miejscami w wynikach wyszukiwania (zielone pinezki). Zwróć uwagę, że wszystkie wyniki znajdują się wzdłuż trasy, ale za San Mateo:

Wypróbuj
Eksplorator interfejsów API 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 możesz edytować parametry żądania.
Kliknij przycisk Wykonaj. W oknie dialogowym wybierz konto, z którego chcesz wysłać prośbę.
W panelu APIs Explorer kliknij ikonę pełnego ekranu fullscreen, aby rozwinąć okno narzędzia.