Określ lokalizacje na trasie

Aby obliczyć trasę, musisz określić co najmniej lokalizacje punktu początkowego i docelowego. Te lokalizacje określasz 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ładów 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:

Lokalizacje wszystkich punktów pośrednich w prośbie możesz określić w ten sam sposób lub mieszać te metody. Możesz na przykład użyć współrzędnych geograficznych dla punktu początkowego i identyfikatora miejsca dla punktu docelowego.

Ze względu na wydajność i dokładność zamiast współrzędnych geograficznych lub ciągów adresów używaj identyfikatorów miejsc. Identyfikatory miejsc są jednoznaczne i zapewniają geokodowanie kierowania, np. punkty dostępu i zmienne ruchu. Pomagają one uniknąć tych sytuacji, które mogą wystąpić w przypadku innych sposobów określania lokalizacji:

  • 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.
  • Zanim interfejs Routes API będzie mógł obliczyć trasę, musi najpierw zgeokodować ciągi adresów, aby przekonwertować je na współrzędne długości i szerokości geograficznej. Ta konwersja może mieć wpływ na skuteczność.

Określ lokalizację za pomocą identyfikatora miejsca

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

Pobieraj identyfikatory miejsc z interfejsów Geocoding APIPlaces API (w tym z 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 w przypadku znaczników origin, jak i destination:

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

Określ lokalizację za pomocą współrzędnych geograficznych

Aby zdefiniować lokalizację w punkcie kontrolnym, podaj lokalizację (REST) lub lokalizację (gRPC), korzystając ze współrzędnych geograficznych.

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 jako ciągu adresu

Adresy w postaci ciągów znaków to dosłowne adresy 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 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.

Na przykład, aby obliczyć trasę, należy określić punkt kontrolny dla trasy 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 geokoduje oba adresy, aby przekonwertować je na współrzędne długości i szerokości geograficznej.

Jeśli wartość adresu jest niejednoznaczna, interfejs Routes API może wywołać wyszukiwanie, aby odróżnić podobne adresy. Na przykład „1st Street” może być pełną lub częściową wartością dla „1st street NE” lub „1st St SE”. Ten wynik może być inny niż zwrócony przez interfejs Geocoding API. Aby uniknąć nieporozumień, możesz użyć identyfikatorów miejsc.

Ustaw region dla adresu.

Jeśli jako lokalizację punktu kontrolnego podasz niepełny ciąg adresu, interfejs API może użyć nieprawidłowych współrzędnych szerokości/długości geograficznej. Na przykład: wysyłasz żądanie z wyznaczonym miejscem wylotu „Toledo” i miejscem docelowym „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. W związku z tym żą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. W tym celu dodaj parametr regionCode. Ten parametr określa kod regionu jako kod ccTLD („domena najwyższego poziomu”) o dwóch znakach. Większość kodów ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma wyjątkami. Na przykład ccTLD Wielkiej Brytanii to „uk” (.co.uk), a jej kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”).

Prośba o wskazanie trasy z Toledo do Madrytu z parametrem 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ć im otrzymywanie przesyłek. Osoby, które podają adres, mogą preferować dostawy do konkretnych miejsc, takich jak tylne wejście czy rampy załadowe.

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

Google opracowało kody Plus Code, aby każdy mógł korzystać z adresów. Kod plus to zakodowany identyfikator lokalizacji wyprowadzony z współrzędnych geograficznych, który reprezentuje obszar o wymiarach 1/8000 stopnia na 1/8000 stopnia (około 14 m na 14 m na równiku) lub mniejszy. Kody Plus Code mogą zastępować adresy w miejscach, w których ich nie ma lub w których budynki nie są numerowane, a ulice nie mają nazw.

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

  • Kod globalny składa się z 4-znakowego kodu obszaru i 6-znakowego lub dłuższego 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, 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 w połączeniu z dokładną 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 nazwą miasta, stanu, kodem pocztowym i nazwą kraju w formie „CRHJ+C3 Stanford, CA 94305, USA”.

    Na przykład oblicz trasę, podając punkt kontrolny dla trasy origin i destination za pomocą kodów plus:

    {
      "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 na przykład 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ć kod Plus Code tej lokalizacji.