Aby obliczyć trasę, musisz określić co najmniej lokalizacje punktu początkowego i docelowego. Te lokalizacje definiujesz jako punkty pośrednie na trasie.
Oprócz miejsca początkowego i docelowego możesz określić różne typy punktów pośrednich i sposób ich obsługi na trasie. Więcej informacji i przykłady znajdziesz w tych artykułach:
- Określanie kierunku jazdy pojazdu i strony drogi
- Określanie punktów pośrednich
- Ustawianie przystanku na trasie
- Ustawianie punktu, przez który ma przebiegać trasa
- Optymalizowanie kolejności przystanków na trasie
Określanie lokalizacji trasy
Lokalizację reprezentujesz, tworząc obiekt Waypoint (REST) lub Waypoint (gRPC). W definicji punktu pośredniego możesz określić lokalizację na jeden z tych sposobów:
- Identyfikator miejsca (preferowany)
- Współrzędne szerokości i długości geograficznej
- Ciąg znaków adresu („Chicago, IL” lub „Darwin, NT, Australia”)
- Token punktu nawigacyjnego
- Plus Code
Możesz określić lokalizacje wszystkich punktów pośrednich w żądaniu w ten sam sposób lub możesz je połączyć. Możesz na przykład użyć współrzędnych geograficznych dla punktu początkowego i identyfikatora miejsca dla punktu docelowego.
Aby zapewnić wydajność i dokładność, używaj identyfikatorów miejsc zamiast współrzędnych geograficznych lub ciągów adresowych. Identyfikatory miejsc są jednoznaczne i zapewniają korzyści związane z geokodowaniem na potrzeby wyznaczania trasy, takie jak punkty dostępu i zmienne dotyczące ruchu. Pomagają uniknąć tych sytuacji, które mogą wynikać z innych sposobów określania lokalizacji:
- Użycie współrzędnych szerokości i długości geograficznej może spowodować, że lokalizacja zostanie przyciągnięta do drogi najbliższej tym współrzędnym, która może nie być punktem dostępu do obiektu, a nawet drogą, która szybko lub bezpiecznie prowadzi do miejsca docelowego.
- Ciągi adresów muszą najpierw zostać poddane geokodowaniu przez interfejs Routes API, aby przekonwertować je na współrzędne szerokości i długości geograficznej, zanim będzie można obliczyć trasę. Ta konwersja może mieć wpływ na skuteczność.
Określanie lokalizacji jako identyfikatora miejsca
Możesz użyć identyfikatora miejsca, aby określić lokalizację punktu pośredniego. Ponieważ współrzędne szerokości i długości geograficznej są przyciągane do dróg, w niektórych przypadkach identyfikator miejsca może dawać lepsze wyniki.
pobierać identyfikatory miejsc z interfejsów Geocoding API i Places API (nowy) (w tym Autocomplete (nowy)). Więcej informacji o identyfikatorach miejsc znajdziesz w omówieniu identyfikatorów miejsc.
W tym przykładzie użyto właściwości placeId, aby przekazać identyfikator miejsca zarówno dla origin, jak i destination:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
określić lokalizację za pomocą współrzędnych geograficznych,
Aby zdefiniować lokalizację w punkcie pośrednim, określ Location (REST) lub Location (gRPC), używając współrzędnych geograficznych.
Możesz na przykład określić punkt pośredni dla trasy origin i destination, używając współrzędnych latitude i longitude:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
Określanie lokalizacji jako ciągu znaków adresu
Ciągi adresów to adresy dosłowne reprezentowane przez ciąg znaków (np. „1600 Amphitheatre Parkway, Mountain View, CA”). Geokodowanie to proces konwertowania ciągu znaków adresu na współrzędne szerokości i długości geograficznej (np. szerokość geograficzna 37.423021 i długość geograficzna -122.083739).
Gdy przekazujesz ciąg znaków adresu jako lokalizację punktu pośredniego, interfejs Routes API wewnętrznie geokoduje ten ciąg, aby przekonwertować go na współrzędne szerokości i długości geograficznej.
Aby na przykład obliczyć trasę, podaj punkt pośredni dla trasy origin i destination, używając ciągów adresów:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
W tym przykładzie interfejs Routes API geokoduje oba adresy, aby przekonwertować je na współrzędne szerokości i długości geograficznej.
Jeśli wartość adresu jest niejednoznaczna, interfejs Routes API może wywołać wyszukiwanie, aby odróżnić go od podobnych adresów. Na przykład „1st Street” może być pełną wartością lub częściową wartością dla „1st street NE” lub „1st St SE”. Ten wynik może się różnić od wyniku zwróconego przez Geocoding API. Możesz uniknąć błędnych interpretacji, używając identyfikatorów miejsc.
Ustawianie regionu dla adresu
Jeśli jako lokalizację punktu pośredniego podasz niepełny ciąg znaków adresu, interfejs API może użyć nieprawidłowych współrzędnych szerokości i długości geograficznej. Możesz na przykład wysłać żądanie, w którym jako miejsce początkowe podasz „Toledo”, a jako miejsce docelowe „Madryt”:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
W tym przykładzie „Toledo” jest interpretowane jako miasto w stanie Ohio w Stanach Zjednoczonych, a nie w Hiszpanii. Dlatego żądanie zwraca pustą tablicę, co oznacza, że nie ma żadnych tras:
{ [] }
Możesz skonfigurować interfejs API tak, aby zwracał wyniki z uwzględnieniem określonego regionu, dodając parametr regionCode. Ten parametr określa kod regionu jako dwuznakową wartość ccTLD („domena najwyższego poziomu”). Większość kodów ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”).
Żądanie wskazówek dojazdu z „Toledo” do „Madrytu”, które zawiera parametr regionCode, zwraca odpowiednie wyniki, ponieważ „Toledo” jest interpretowane jako miasto w Hiszpanii:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
Odpowiedź zawiera teraz trasę obliczoną z Toledo w Hiszpanii do Madrytu w Hiszpanii:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
Określanie lokalizacji jako tokenu punktu nawigacyjnego
Token punktu nawigacyjnego to ciąg znaków, który koduje lokalizację i dodatkowy kontekst trasy. Tokeny punktów nawigacyjnych mogą zapewniać precyzyjne wyznaczanie trasy do konkretnych punktów dostępu w pobliżu wejść, doków załadunkowych lub wyznaczonych obszarów odbioru. Jest to przydatne w przypadku dostawy jedzenia lub przejazdów, gdy punkt odbioru lub wysiadania może być niejednoznaczny.
Token punktu nawigacyjnego możesz uzyskać, wywołując metodę Destinations interfejsu Geocoding API.
Aby określić token punktu nawigacyjnego:
- Uzyskaj
navigationPointTokenza pomocą metodySearchDestinationsinterfejsu Geocoding API. Więcej informacji znajdziesz w dokumentacji interfejsu Geocoding API - Utwórz punkt pośredni, przekazując
navigationPointToken.
W tym przykładzie użyto właściwości navigation_point_token, aby przekazać token punktu nawigacyjnego zarówno dla origin, jak i destination:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
Określanie lokalizacji za pomocą kodu Plus Code
Wiele osób nie ma dokładnego adresu, co może utrudniać im otrzymywanie przesyłek. Z kolei osoby, które mają adres, mogą preferować odbiór przesyłek w bardziej konkretnych lokalizacjach, takich jak tylne wejście lub rampa załadunkowa.
Kody Plus są jak adresy ulic dla osób lub miejsc, które nie mają rzeczywistego adresu. Zamiast adresów z nazwami ulic i numerami domów kody Plus Codes są oparte na współrzędnych długości i szerokości geograficznej i są wyświetlane jako cyfry i litery.
Google opracowało Plus Codes, aby każdy i wszystko mogło mieć adres. Plus Code to zakodowane odniesienie do lokalizacji, które pochodzi ze współrzędnych szerokości i długości geograficznej i reprezentuje obszar o wymiarach 1/8000 stopnia na 1/8000 stopnia (około 14 m na 14 m na równiku) lub mniejszy. Możesz używać kodów Plus Codes zamiast adresów ulic w miejscach, gdzie ich nie ma, gdzie budynki nie są ponumerowane lub ulice nie mają nazw.
Kody Plus Code muszą być sformatowane jako kod globalny lub kod złożony:
- Kod globalny składa się z 4-znakowego numeru kierunkowego i kodu lokalnego o długości co najmniej 6 znaków.
Na przykład dla adresu „1600 Amphitheatre Parkway, Mountain View, CA” kod globalny to „849V”, a kod lokalny to „CWC8+R9”. Następnie użyj całego 10-znakowego plus kodu, aby określić wartość lokalizacji jako „849VCWC8+R9”.
- Kod złożony składa się z kodu lokalnego o długości co najmniej 6 znaków połączonego z wyraźną lokalizacją.
Na przykład adres „450 Serra Mall, Stanford, CA 94305, USA” ma kod lokalny „CRHJ+C3”. W przypadku adresu złożonego połącz kod lokalny z miastem, stanem, kodem pocztowym i krajem w formacie „CRHJ+C3 Stanford, CA 94305, USA”.
Możesz na przykład obliczyć trasę, podając punkt pośredni dla trasy
originidestinationza pomocą kodów Plus Code:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
Kody Plus są obsługiwane w interfejsach API Google Maps Platform, w tym w Autocomplete (New), informacje o miejscu (New) i Geocoding API. Możesz na przykład użyć interfejsu Geocoding API do odwrotnego geokodowania lokalizacji określonej przez współrzędne szerokości i długości geograficznej, aby określić kod Plus Code tej lokalizacji.