Określ lokalizacje na trasie

Aby wyznaczyć trasę, musisz określić przynajmniej lokalizacje początku i miejsca docelowego trasy. Określasz je jako punkty pośrednie na trasie.

Oprócz punktu początkowego i docelowego możesz określić różne typy punktów pośrednich oraz sposób ich obsługi na trasie. Więcej informacji i przykłady znajdziesz w tych tematach:

Określ lokalizacje trasy

Reprezentujesz lokalizację, tworząc obiekt Waypoint (REST) lub Waypoint (gRPC). W definicji punktu pośredniego możesz określić lokalizację na jeden z tych sposobów:

Możesz w ten sam sposób określić lokalizacje wszystkich punktów pośrednich w żądaniu lub je połączyć. Możesz na przykład użyć współrzędnych geograficznych punktu początkowego i użyć identyfikatora miejsca jako docelowego punktu pośredniego.

Aby zwiększyć wydajność i dokładność, zamiast współrzędnych szerokości i długości geograficznej i ciągów adresu używaj identyfikatorów miejsc. Identyfikatory miejsc są jednoznaczne i zapewniają geokodowanie kierowania, np. punkty dostępu i zmienne ruchu. Pomagają one uniknąć:

  • Użycie współrzędnych szerokości i długości geograficznej może spowodować przyciąganie lokalizacji do drogi, która znajduje się najbliżej tych współrzędnych – co może nie być punktem dostępu do nieruchomości lub nawet drogą, która szybko lub bezpiecznie prowadzi do miejsca docelowego.
  • Ciągi adresu muszą zostać najpierw przekształcone przez interfejs Routes API w celu ich przekonwertowania 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ść.

Podaj lokalizację jako identyfikator miejsca

Możesz użyć identyfikatora miejsca, aby określić lokalizację punktu pośredniego. Współrzędne szerokości i długości geograficznej są przypisywane do dróg, dlatego w niektórych przypadkach identyfikator miejsca może przynieść lepsze wyniki.

Pobierz identyfikatory miejsc z interfejsów Geocoding API i Places API (w tym z funkcji autouzupełniania miejsc). Więcej informacji o identyfikatorach miejsc znajdziesz w artykule Omówienie identyfikatorów miejsc.

Poniższy przykład używa właściwości placeId do przekazywania identyfikatora miejsca zarówno dla origin, jak i destination:

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

Określanie lokalizacji za pomocą współrzędnych geograficznych

Aby zdefiniować lokalizację w punkcie pośrednim, określ wartość w polu Lokalizacja (REST) lub Lokalizacja(gRPC), używając współrzędnych szerokości i długości geograficznej.

Na przykład punkt pośredni na trasie origin i destination możesz określić za pomocą 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 za pomocą ciągu znaków adresu

Ciągi adresowe to adresy reprezentowane przez ciąg znaków (np. „ul. Emilii Plater 53, 00-113 Warszawa”). Geokodowanie to proces przekształcania ciągu tekstowego adresu na współrzędne geograficzne (na przykład szerokość i długość geograficzna 37.423021 i długość geograficzna -122.083739).

Gdy przekazujesz ciąg adresowy jako lokalizację punktu pośredniego, interfejs Routes API wewnętrznie przekształca ciąg znaków, aby przekonwertować go na współrzędne szerokości i długości geograficznej.

Aby na przykład obliczyć trasę, należy za pomocą ciągów adresu wskazać punkt pośredni na trasie origin i destination:

{
  "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, konwertując 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ć podobne adresy. Na przykład „ulica 1. ulicy” może być całkowitą lub częściową wartością określenia „ul. 1, Warszawa” lub „ul. Główna Wsch.”. Ten wynik może się różnić od wyniku zwróconego przez interfejs Geocoding API. Korzystając z identyfikatorów miejsc, można uniknąć błędnej interpretacji.

Ustawianie regionu adresu

Jeśli jako lokalizację punktu pośredniego przekażesz niepełny adres, interfejs API może użyć nieprawidłowych współrzędnych geograficznych. Na przykład wysyłasz żądanie, podając „Toledo” jako początek i „Madryt” jako miejsce docelowe trasy samochodowej:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

W tym przykładzie „Toledo” oznacza miasto w stanie Ohio w Stanach Zjednoczonych, a nie w Hiszpanii. Dlatego żądanie zwraca pustą tablicę, co oznacza, że nie ma tras:

{
  []
}

Możesz skonfigurować interfejs API w taki sposób, aby zwracał wyniki stronnicze w określonym regionie, dodając parametr regionCode. Ten parametr określa kod regionu jako wartość dwuznakową ccTLD („domenę najwyższego poziomu”). Większość kodów domen ccTLD jest identyczna z kodami ISO 3166-1 z kilkoma wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (.co.uk), a jej kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Wielka Brytania i Irlandia Północna”).

Zapytanie o trasę dojazdu z „Toledo” do „Madrytu” zawierające 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ę z Toledo w Hiszpanii do Madrytu w Hiszpanii:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

Podaj lokalizację za pomocą kodu Plus Code

Wiele osób nie ma dokładnego adresu, co może utrudniać odbieranie przesyłek. Z kolei osoby znające adres mogą akceptować dostawy do bardziej konkretnych miejsc, takich jak wejście z tyłu lub dock z ładowarką.

Kody Plus Code są jak adresy osób lub miejsc, które nie mają prawdziwego adresu. Zamiast adresów zawierających nazwy i numery ulic kody Plus Code są wyświetlane w postaci cyfr i liter na podstawie współrzędnych geograficznych.

Firma Google opracowała kody Plus Code, aby zapewnić możliwość korzystania z adresów wszystkim użytkownikom. Plus Code to zakodowane odniesienie do lokalizacji określane na podstawie współrzędnych szerokości i długości geograficznej, które reprezentują obszar: 1/8000 stopnia na 1/8000 stopnia (około 14 x 14 m na równiku) lub mniejszy. Kodów Plus Code możesz używać zamiast adresów w miejscach, w których ich nie ma lub gdy budynki nie są ponumerowane lub nie mają nazw ulic.

Kody Plus Code muszą być sformatowane jako kod globalny lub złożony:

  • Kod globalny składa się z 4-znakowego numeru kierunkowego i co najmniej 6-znakowego kodu lokalnego.

    Na przykład w przypadku 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 kodu Plus Code, aby określić wartość lokalizacji jako „849VCWC8+R9”.

  • Kod złożony składa się z co najmniej 6-znakowego kodu lokalnego połączonego z konkretną lokalizacją.

    Na przykład adres „450 Serra Mall, Stanford, CA 94305, USA” zawiera kod lokalny „CRHJ+C3”. W przypadku adresu zbiorowego połącz kod lokalny z fragmentem adresu obejmującym miasto, województwo, kod pocztowy i kraj, w postaci „CRHJ+C3 Stanford, CA 94305, USA”.

    Na przykład oblicz trasę, podając punkt na trasie origin i destination za pomocą kodów Plus Code:

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Kody Plus Code są obsługiwane w interfejsach API Google Maps Platform, takich jak Place Autocomplete, Place Details, Directions API oraz Geocoding API. Możesz np. użyć interfejsu Geocoding API do odwrotnego kodowania geokodowania lokalizacji określonej za pomocą współrzędnych szerokości i długości geograficznej i określanie jej kodu Plus Code.