Określ lokalizacje na trasie

Aby obliczyć trasę, musisz określić przynajmniej lokalizacje miejsca początkowego i docelowego trasy. Definiujesz te lokalizacje jako punkty pośrednie na trasie.

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

Określanie lokalizacji dla trasy

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

Możesz określić lokalizacje wszystkich punktów pośrednich w żądaniu w ten sam sposób albo je zmieszać. Możesz na przykład użyć współrzędnych szerokości i długości geograficznej punktu pośredniego oraz identyfikatora miejsca dla docelowego punktu pośredniego.

Aby zwiększyć efektywność i dokładność, używaj identyfikatorów miejsc zamiast współrzędnych szerokości i długości geograficznej lub ciągów adresów. Identyfikatory miejsc są jednoznacznie jawne i zapewniają korzyści geokodowania związane z wyznaczaniem tras, takie jak punkty dostępu i zmienne związane z ruchem. Pomagają uniknąć tych sytuacji, które mogą wynikać z innych sposobów określania lokalizacji:

  • Użycie współrzędnych geograficznych może spowodować, że lokalizacja zostanie przyciągnięta do drogi znajdującej się najbliżej tych współrzędnych, co może nie być punktem dostępu do posesji lub nawet drogą szybko lub bezpiecznie prowadzącą do miejsca docelowego.
  • Aby można było obliczyć trasę, ciągi adresów muszą zostać najpierw przekształcone w dane geograficzne przez interfejs Routes API, aby mogły zostać przekształcone na współrzędne szerokości i długości geograficznej. Ta konwersja może mieć wpływ na skuteczność.

Podaj lokalizację jako identyfikator miejsca

Możesz określić lokalizację punktu na trasie za pomocą identyfikatora miejsca. Ponieważ współrzędne szerokości i długości geograficznej są przypisywane do dróg, w niektórych okolicznościach identyfikator miejsca może przynieść lepsze wyniki.

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

W tym przykładzie użyto właściwości placeId do przekazania identyfikatora miejsca zarówno dla właściwości origin, jak i destination:

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

Określanie lokalizacji jako współrzędnych szerokości i długości geograficznej

Aby zdefiniować lokalizację jako punkt pośredni, wybierz lokalizację (REST) lub lokalizację(gRPC) za pomocą współrzędnych geograficznych.

Na przykład możesz określić punkt na trasie 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
      }
    }
  },
...
}

Podaj lokalizację w postaci ciągu adresu

Ciągi adresów to adresy literałów reprezentowane przez ciąg znaków (np. „Emilii Plater 23, Warszawa”. Geokodowanie to proces konwertowania ciągu adresu na współrzędne (np. szerokość i długość geograficzną 37,423021) i długość geograficzną -122,083739.

Gdy przekazujesz ciąg adresu jako lokalizację punktu na trasie, interfejs Routes API przekształca go w dane geograficzne, aby przekonwertować go na współrzędne szerokości i długości geograficznej.

Aby na przykład obliczyć trasę, należy określić punkt na trasie origin i destination za pomocą 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 koduje geokody obydwu adresów, 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 w celu odróżnienia podobnych adresów. Na przykład „1st Street” może być pełną lub częściową wartością „1st Street NE” lub „1st Street SE”. Wynik może różnić się od wyniku zwracanego przez Geocoding API. Dzięki identyfikatorom miejsc można uniknąć możliwych błędnych interpretacji.

Ustaw region dla adresu

Jeśli jako lokalizację punktu pośredniego przekażesz niepełny ciąg adresu, interfejs API może użyć nieprawidłowych współrzędnych szerokości i długości geograficznej. Możesz np. wysłać żądanie, w którym wskażesz „Toledo” jako miejsce wylotu i „Madryt” jako miejsce docelowe trasy dojazdu:

{
  "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 nastawione na określony region, dodając parametr regionCode. Ten parametr określa kod regionu w postaci dwuznakowej wartości ccTLD („domena najwyższego poziomu”). Większość kodów domen ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma ważnymi wyjątkami. Na przykład domena ccTLD w Wielkiej Brytanii to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie oznaczający „Wielka Brytania” i Irlandię Północną).

Zapytanie o trasę 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ę obliczoną 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 dostaw. Z kolei osoby znające adres mogą preferować dostawy w konkretnych lokalizacjach, takich jak tylne wejście lub stacja dokująca.

Kody Plus Code są jak adresy osób lub miejsc, które nie mają rzeczywistego adresu. Zamiast adresów z nazwami ulic i numerami, kody Plus Code są oparte na współrzędnych szerokości i długości geograficznej i wyświetlają się jako liczby oraz litery.

Firma Google opracowała kody Plus Code, aby adresy mogły być przydatne dla wszystkich. Kod Plus Code to zakodowane odniesienie do lokalizacji, wyodrębnione ze współrzędnych geograficznych, które reprezentuje obszar: 1/8000 stopnia i 1/8000 stopnia (około 14 m x 14 m na równiku) lub mniejszy. Kodów Plus Code możesz używać zamiast adresów ulic w miejscach, gdzie nie istnieją, w których budynki nie mają numerów lub ulic nie są nazwane.

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

  • Kod globalny składa się z kodu kierunkowego o długości 4 znaków i kodu lokalnego o długości co najmniej 6 znaków.

    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 kodu lokalnego o długości co najmniej 6 znaków i określonej lokalizacji.

    Na przykład adres „450 Serra Mall, Stanford, CA 94305, USA” zawiera kod lokalny „CRHJ+C3”. W przypadku adresu złożonego połącz kod lokalny z miastem, województwem, kodem pocztowym i częścią adresu w formacie „CRHJ+C3 Stanford, CA 94305, USA”.

    Możesz na przykład obliczyć trasę, określają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, w tym w przypadku autouzupełniania miejsc, szczegółów miejsc, interfejsu Directions API i Geocoding API. Na przykład można użyć interfejsu Geocoding API, aby odwrócić geokodowanie lokalizacji określonej za pomocą współrzędnych szerokości i długości geograficznej, aby określić jej kod Plus Code.