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 APIs 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 danego 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 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 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:searchNearbyNie musisz używać tych samych współrzędnych dla locationRestriction i locationRestriction w przypadku miejsca docelowego trasy. 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 inną lokalizację w okręgu wyszukiwania. Żądanie powoduje następnie, że wyniki wyszukiwania są dostosowywane do okręgu, a podsumowania tras są obliczane 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,WALKlubTWO_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_AWARElubTRAFFIC_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.routingPreferencema 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,avoidFerriesiavoidIndoor. 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
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 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.