Oblicz podsumowanie tras
Aby użyć wyszukiwania tekstowego (nowej funkcji) lub wyszukiwania w pobliżu (nowej funkcji) do obliczenia czasu podróży i odległości do każdego miejsca w odpowiedzi:
-
Aby określić współrzędne szerokości i długości geograficznej punktu początkowego trasy, prześlij parametr
routingParameters.origin
w żądaniu. Ten parametr jest wymagany do obliczenia czasu trwania i odległości do każdego miejsca w odpowiedzi. -
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.
Korzystanie z wyszukiwania tekstowego (nowa funkcja)
W następującej prośbie obliczasz czas trwania podróży i odległość do każdego miejsca w odpowiedzi wyszukiwania tekstowego (nowej):
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ść do pokonania 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 routingSummaries[0]
odpowiada miejscu places[0]
.
Długość tablicy routingSummaries
jest taka sama jak długość tablicy places
. Jeśli wartość routingSummary
dla danego miejsca jest niedostępna, element tablicy jest pusty.
W tym przykładzie obliczamy czas i odległość od punktu początkowego do poszczególnych miejsc, dlatego pole routingSummaries.legs
w odpowiedzi zawiera pojedynczy obiekt Leg
, który zawiera wartości duration
i distanceMeters
od punktu początkowego do miejsca docelowego.
{ "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 wynika, że czas i odległość od punktu początkowego do pierwszego miejsca w wynikach to odpowiednio 597 sekund i 2607 metrów.
Korzystanie z wyszukiwania w pobliżu
W tym przykładzie obliczasz czas podróży i odległość do każdego miejsca w odpowiedzi na wyszukiwanie w pobliżu. W tym przykładzie wyszukiwane są restauracje w Sydney w Australii. Ograniczenie lokalizacji i miejsce docelowe mają te same współrzędne:
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 źródła routingu. Możesz na przykład ustawić locationRestriction
na punkt środkowy w Sydney, aby wyniki wyszukiwania były przybliżone do tego koła. Następnie ustawiasz punkt początkowy nawigacji na współrzędne swojego domu, czyli na inną lokalizację w zakresie koła wyszukiwania. Następnie żądanie kieruje wyniki wyszukiwania do kręgu i oblicza podsumowania tras na podstawie lokalizacji Twojego domu.
Określ opcje podróży
Domyślnie obliczenia czasu trwania i odległości dotyczą samochodu. Możesz jednak kontrolować typ pojazdu oraz inne opcje w wyszukiwarce.
-
Użyj parametru
routingParameters.travelMode
, aby ustawić tryb 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 sposobu i czasu uwzględniania danych o ruchu.Właściwość
routingParameters.routingPreference
ma wpływ na wskazówki zawarte w poludirectionsUri
w sekcji Podgląd (przed GA), ponieważ Mapy Google wyświetlają opcje dotyczące natężenia ruchu po otwarciu linku. -
Użyj właściwości
routingParameters.routeModifiers
, aby określić, czy chcesz użyć wartościavoidTolls
,avoidHighways
,avoidFerries
lubavoidIndoor
. Więcej informacji o tych opcjach znajdziesz w artykule Określanie elementów trasy, których należy unikać.
W następnym przykładzie określasz środek transportu jako DRIVE
i ustawiasz opcję omijania 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'