Określ lokalizacje na trasie

Aby obliczyć trasę, musisz określić co najmniej lokalizacje miejsca pochodzenia i miejsca docelowego trasy. Takie lokalizacje definiuje się jako punkty pośrednie na trasie.

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

Określanie lokalizacji dla trasy

Aby wskazać lokalizację, musisz utworzyć 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 możesz określić w żądaniu w ten sam sposób albo je zmieszać. Możesz na przykład użyć szerokości i długości geograficznej punktu początkowego, a miejsca docelowego – identyfikatora miejsca.

Aby zwiększyć efektywność i dokładność, użyj 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ą geokodowanie związane z wyznaczaniem tras, takie jak punkty dostępu i zmienne ruchu. Pomagają uniknąć tych sytuacji, które mogą być spowodowane innymi sposobami określania lokalizacji:

  • Użycie współrzędnych szerokości i długości geograficznej może spowodować przyciąganie lokalizacji do drogi znajdującej się najbliżej tych współrzędnych – może to nie być punkt dostępu do nieruchomości, a nawet droga szybko lub bezpiecznie prowadząca do miejsca docelowego.
  • Aby można było obliczyć trasę, ciągi adresów muszą zostać przekodowane na dane geograficzne przez interfejs Routes API, aby można je było przekonwertować na współrzędne szerokości i długości geograficznej. Ta konwersja może mieć wpływ na skuteczność.

Określ lokalizację jako identyfikator miejsca

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

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

W tym przykładzie użyto właściwości placeId do przekazania identyfikatora miejsca zarówno w przypadku elementów 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ę punktu pośredniego, określ lokalizację (REST) lub lokalizację(gRPC) za pomocą współrzędnych szerokości i długości geograficznej.

Na przykład możesz określić punkt pośredni na trasach origin i destination przy użyciu 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 dosłowne adresy reprezentowane przez ciąg znaków (np. „Emilii Plater 23, Warszawa”). Geokodowanie to proces przekształcania ciągu znaków adresu na współrzędne geograficzne (np. szerokość i długość geograficzną -122,083739).

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

Na przykład, aby obliczyć trasę, należy za pomocą ciągów adresów określić punkt pośredni na trasach 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, aby przekonwertować je na współrzędne geograficzne.

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”. Ten wynik może się różnić od wyniku zwróconego przez interfejs Geocoding API. Korzystając z identyfikatorów miejsc, możesz uniknąć możliwych błędnych interpretacji.

Ustaw region adresu

Jeśli podasz niekompletny ciąg adresu jako lokalizację punktu na trasie, interfejs API może użyć nieprawidłowych współrzędnych szerokości/długości geograficznej geograficznie. Możesz na przykład wysłać żądanie, podając „Toledo” jako miejsce wylotu i „Madryt” jako miejsce docelowe dla trasy samochodowej:

{
  "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 promowane w konkretnym regionie, uwzględniając parametr regionCode. Ten parametr określa kod regionu w postaci wartości dwuliterowej ccTLD („domena najwyższego poziomu”). Większość kodów domen ccTLD jest taka sama jak kody ISO 3166-1, z pewnymi wyjątkami. Na przykład brytyjska domena ccTLD to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (czyli dla podmiotu „Wielka Brytania i Irlandia Północna”).

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ę w postaci 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ć przyjmowanie przesyłki w bardziej konkretnych miejscach, takich jak tylne wejście lub stacja dokująca.

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

Firma Google opracowała kody Plus Code, aby umożliwić korzystanie z adresów wszystkim i wszystkim. Kod plus to zakodowane odniesienie do lokalizacji, wyodrębnione ze współrzędnych geograficznych, które reprezentuje obszar: 1/8000 stopnia na 1/8000 stopnia (około 14 x 14 m na równiku) lub mniejszy. Kodów Plus Code można użyć jako zamiennika adresów z ulicą i numeru w miejscach, w których nie istnieją, w których budynki nie mają numeru lub ulic nie są nazwane.

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

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

    Na przykład w przypadku adresu „1600 Amphitheatre Parkway, Mountain View, CA” globalny kod to „849V”, a kod lokalny to „CWC8+R9”. Następnie użyj całego kodu Plus Code o długości 10 znaków, aby określić wartość lokalizacji jako „849VCWC8+R9”.

  • Kod złożony składa się z kodu lokalnego składającego się z co najmniej 6 znaków i określonej lokalizacji.

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

    Na przykład oblicz trasę, określając punkt pośredni dla tras 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 przez interfejsy Google Maps Platform API, w tym autouzupełnianie miejsc, szczegóły miejsc, Directions API i Geocoding API. Na przykład możesz 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.