Obliczanie podsumowania wyznaczania trasy
Aby obliczyć czas podróży i odległość do każdego miejsca w odpowiedzi za pomocą wyszukiwania tekstowego (nowość) lub wyszukiwania w pobliżu (nowość):
-
W żądaniu przekaż parametr
routingParameters.origin
, aby określić współrzędne szerokości i długości geograficznej punktu początkowego trasy. Ten parametr jest wymagany do obliczenia czasu trwania i odległości do każdego miejsca w odpowiedzi. -
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:
Korzystanie z wyszukiwania tekstowego (nowość)
W tym żądaniu obliczasz czas podróży i odległość do każdego miejsca w odpowiedzi na wyszukiwanie tekstowe (nowe):
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -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 JSON: tablica places
zawiera pasujące miejsca, a tablica routingSummaries
zawiera czas trwania i odległość podróży do każdego miejsca:
{ "places": [ { object (Place) } ] "routingSummaries": [ { object (RoutingSummary) } }
Każdy element w tablicy routingSummaries
znajduje się w odpowiednim miejscu w tablicy places
. Oznacza to, że element w pozycji routingSummaries[0]
odpowiada miejscu w pozycji places[0]
.
Długość tablicy routingSummaries
jest taka sama jak długość tablicy places
. Jeśli routingSummary
dla miejsca jest niedostępny, wpis w tablicy jest pusty.
W tym przykładzie obliczamy czas trwania i odległość od punktu początkowego do każdego miejsca, więc pole routingSummaries.legs
w odpowiedzi zawiera pojedynczy obiekt Leg
, który zawiera pola duration
i distanceMeters
od punktu początkowego do miejsca.
{ "places": [ { "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia", "displayName": { "text": "Gözleme King Sydney", "languageCode": "en" } }, { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, … ] "routingSummaries": [ { "legs": [ { "duration": "597s", "distanceMeters": 2607 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0" }, { "legs": [ { "duration": "562s", "distanceMeters": 2345 } ], "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0" }, … ] }
Z tego przykładu widać, że czas trwania i odległość od punktu początkowego wyznaczania trasy do pierwszego miejsca w wynikach wynoszą 597 sekund i 2607 metrów.
Korzystanie z Wyszukiwania w pobliżu
W tym przykładzie obliczasz czas trwania podróży i odległość do każdego miejsca w odpowiedzi na zapytanie Nearby Search. W tym przykładzie wyszukiwane są restauracje w Sydney w Australii, a ograniczenie lokalizacji i miejsce rozpoczęcia trasy są ustawione na te same współrzędne geograficzne:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": -33.8688, "longitude": 151.1957362}, "radius": 500.0 } }, "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \ -H "X-Goog-FieldMask: places.displayName,routingSummaries" \ https://places.googleapis.com/v1/places:searchNearby
Nie musisz używać tych samych współrzędnych dla locationRestriction
i w przypadku miejsca docelowego. Możesz na przykład ustawić locationRestriction
na środek Sydney, aby wyniki wyszukiwania były bardziej dopasowane do tego okręgu. Następnie ustawiasz punkt początkowy trasy na współrzędne swojego domu, czyli na inne miejsce w okręgu wyszukiwania. Żądanie to powoduje następnie dostosowanie wyników wyszukiwania do okręgu i obliczenie podsumowań tras na podstawie lokalizacji Twojego domu.
Określanie opcji podróży
Domyślnie obliczenia czasu trwania i odległości dotyczą samochodu. Możesz jednak określić typ pojazdu i inne opcje w wyszukiwaniu.
-
Użyj parametru
routingParameters.travelMode
, aby ustawić środek transportu naDRIVE
,BICYCLE
,WALK
lubTWO_WHEELER
. Więcej informacji o tych opcjach znajdziesz w artykule Dostępne typy pojazdów na trasach. -
Użyj właściwości
routingParameters.routingPreference
, aby ustawić opcję preferencji routingu naTRAFFIC_UNAWARE
(domyślnie),TRAFFIC_AWARE
lubTRAFFIC_AWARE_OPTIMAL
. Każda opcja ma różny poziom jakości danych i opóźnienia. Więcej informacji znajdziesz w artykule Określanie, czy i jak uwzględniać dane o ruchu.Właściwość
routingParameters.routingPreference
ma wpływ na wskazówki zawarte w polu Podgląd (przed udostępnieniem)directionsUri
, ponieważ Mapy Google wyświetlają opcje ruchu po otwarciu linku. -
Użyj właściwości
routingParameters.routeModifiers
, aby określićavoidTolls
,avoidHighways
,avoidFerries
iavoidIndoor
. Więcej informacji o tych opcjach znajdziesz w artykule Określanie funkcji trasy, których należy unikać.
W następnym przykładzie określasz środek transportu jako DRIVE
i wybierasz opcję unikania autostrad:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "routingParameters": { "origin": { "latitude": -33.8688, "longitude": 151.1957362 }, "travelMode":"DRIVE", "routeModifiers": { "avoidHighways": 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'
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.