Sprawdź odpowiedź na trasę

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Gdy interfejs Routes API oblicza trasę, jako dane wejściowe przyjmuje punkty pośrednie i podane przez Ciebie parametry konfiguracji. Interfejs API zwraca odpowiedź zawierającą trasę domyślną i co najmniej 1 trasę alternatywną.

Odpowiedź może zawierać różne typy tras i inne dane w zależności od pól, o które poprosisz:

Aby uwzględnić to w odpowiedzi Zobacz tę dokumentację
Trasa o największej oszczędności paliwa lub energii w zależności od typu silnika. Konfigurowanie tras przyjaznych dla środowiska
Maksymalnie 3 trasy alternatywne Prośba o trasy alternatywne
linię łamaną całej trasy, każdego etapu trasy i każdego kroku etapu; Żądanie linii łamanych trasy
Szacowane opłaty za przejazd, z uwzględnieniem wszelkich zniżek lub karnetów dostępnych dla kierowcy lub pojazdu. Obliczanie opłat za przejazd
Zlokalizowane odpowiedzi według kodów języków i jednostek miary (system imperialny lub metryczny). Prośba o zlokalizowane wartości
Aby sformatować instrukcje nawigacji jako ciąg tekstowy HTML, dodaj HTML_FORMATTED_NAVIGATION_INSTRUCTIONS do extraComputations. Dodatkowe obliczenia

Pełną listę opcji wejściowych znajdziesz w sekcji Dostępne opcje trasy i w treści żądania.

Na podstawie odpowiedzi możesz przekazać klientom informacje niezbędne do wybrania odpowiedniej trasy zgodnie z ich wymaganiami.

Maski pól

Podczas wywoływania metody obliczania trasy musisz określić maskę pola, która definiuje, które pola mają być zwracane w odpowiedzi. Nie ma domyślnej listy zwracanych pól. Jeśli pominiesz tę listę, metody zwrócą błąd.

Przykłady w tym dokumencie pokazują cały obiekt odpowiedzi bez uwzględniania masek pól. W środowisku produkcyjnym odpowiedź będzie zawierać tylko pola, które zostały wyraźnie określone w masce pola.

Więcej informacji znajdziesz w sekcji Wybieranie informacji do zwrócenia.

Wyświetlanie informacji o prawach autorskich

Podczas wyświetlania wyników użytkownikom musisz podać to oświadczenie o prawach autorskich:

Powered by Google, ©YEAR Google

Na przykład:

Powered by Google, ©2023 Google

Trasy, odcinki i kroki

Zanim zapoznasz się z odpowiedzią zwróconą przez interfejs Routes API, musisz poznać komponenty, z których składa się trasa:

trasa, odcinek i krok;

Odpowiedź może zawierać informacje o każdym z tych elementów trasy:

  • Trasa: cała podróż od punktu początkowego przez wszystkie punkty pośrednie do punktu docelowego. Trasa składa się z co najmniej 1 odcinka.

  • Odcinek: ścieżka od jednego punktu na trasie do następnego. Każdy etap składa się z co najmniej 1 kroku.

    Trasa zawiera osobny odcinek dla ścieżki od każdego punktu do następnego. Jeśli np. trasa zawiera 1 punkt początkowy i 1 punkt docelowy, składa się z 1 odcinka. W przypadku każdego dodatkowego punktu pośredniego dodanego do trasy po punkcie początkowym i docelowym, zwanego punktem pośrednim, interfejs API dodaje osobny odcinek.

    Interfejs API nie dodaje odcinka dla przejściowego pośredniego punktu pośredniego. Na przykład trasa, która zawiera punkt pośredni miejsca wyjazdu, punkt pośredni, przez który chcesz przejechać, i punkt pośredni miejsca docelowego, zawiera tylko 1 etap od miejsca wyjazdu do miejsca docelowego, który przebiega przez punkt pośredni. Więcej informacji o punktach pośrednich znajdziesz w artykule Definiowanie punktu pośredniego.

  • Krok: pojedyncza instrukcja na odcinku trasy. Krok to najmniejsza jednostka trasy. Na przykład krok może brzmieć: „Skręć w lewo w ulicę Główną”.

Co zawiera odpowiedź

Obiekt JSON reprezentujący odpowiedź interfejsu API zawiera te właściwości najwyższego poziomu:

  • routes, tablica elementów typu Route. Tablica routes zawiera po 1 elemencie na każdą trasę zwróconą przez interfejs API. Tablica może zawierać maksymalnie 5 elementów: trasę domyślną, trasę ekologiczną i do 3 tras alternatywnych.

  • geocodingResults, tablica elementów typu GeocodingResults. W przypadku każdej lokalizacji w żądaniu (punktu początkowego, docelowego lub pośredniego), która została określona jako ciąg adresu lub kod Plus, interfejs API wyszukuje identyfikator miejsca. Każdy element tej tablicy zawiera identyfikator miejsca odpowiadający lokalizacji. Lokalizacje w żądaniu określone jako identyfikator miejsca lub współrzędne geograficzne nie są uwzględniane. Jeśli wszystkie lokalizacje zostały określone za pomocą identyfikatorów miejsc lub współrzędnych geograficznych, ta tablica nie jest podawana.

  • fallbackInfo, typu FallbackInfo. Jeśli interfejs API nie może obliczyć trasy na podstawie wszystkich właściwości wejściowych, może użyć innego sposobu obliczania. Gdy używany jest tryb rezerwowy, to pole zawiera szczegółowe informacje o odpowiedzi rezerwowej. W przeciwnym razie to pole nie jest ustawione.

Odpowiedź ma postać:

{
  // The routes array.
  "routes": [
    {
      object (Route)
    }
  ],
  // The place ID lookup results.
  "geocodingResults": [
    {
      object (GeocodedWaypoint)
    }
  ],
  // The fallback property.
  "fallbackInfo": {
    object (FallbackInfo)
  }
}

Interpretowanie tablicy tras

Odpowiedź zawiera tablicę routes, której każdy element jest typu Route. Każdy element tablicy reprezentuje całą trasę od miejsca wyjazdu do miejsca docelowego. Interfejs API zawsze zwraca co najmniej 1 trasę, która jest nazywana trasą domyślną.

Możesz poprosić o dodatkowe trasy. Jeśli poprosisz o trasę przyjazną dla środowiska, tablica może zawierać 2 elementy: trasę domyślną i trasę przyjazną dla środowiska. Możesz też ustawić wartość computeAlternativeRoutes na true w żądaniu, aby dodać do odpowiedzi maksymalnie 3 alternatywne trasy.

Każda trasa w tablicy jest identyfikowana za pomocą właściwości tablicy routeLabels:

Wartość Opis
DEFAULT_ROUTE Określa trasę domyślną.
FUEL_EFFICIENT Określa trasę przyjazną dla środowiska.
DEFAULT_ROUTE_ALTERNATE I Oznacza trasę alternatywną.

Tablica legs zawiera definicję każdego odcinka trasy. Pozostałe właściwości, takie jak distanceMeters, duration i polyline,, zawierają informacje o całej trasie:

{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "routeLabels": [string],
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  }
  "routeToken": string
}

Ze względu na aktualne warunki na drodze i inne czynniki trasa domyślna i trasa przyjazna dla środowiska mogą być takie same. W tym przypadku tablica routeLabels zawiera oba tagi: DEFAULT_ROUTE i FUEL_EFFICIENT.

{
  "routes": [
    {
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ],
     …
    }
  ]
}

Informacje o tablicy legs

Każdy element route w odpowiedzi zawiera tablicę legs, w której każdy element legs jest typu RouteLeg. Każdy odcinek w tablicy określa ścieżkę od jednego punktu pośredniego do następnego wzdłuż trasy. Trasa zawsze zawiera co najmniej 1 odcinek.

Właściwość legs zawiera definicję każdego kroku na trasie w tablicy steps. Pozostałe właściwości, takie jak distanceMeters, duration i polyline, zawierają informacje o odcinku.

{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  }
}

Omówienie tablicy kroków

Każdy etap w odpowiedzi zawiera tablicę steps, której każdy steps element jest typu RouteLegStep. Krok odpowiada pojedynczej instrukcji dotyczącej nogi. Etap zawsze zawiera co najmniej 1 krok.

Każdy element w tablicy steps zawiera właściwość navigationInstruction typu NavigationInstruction, która zawiera instrukcję kroku. Na przykład:

"navigationInstruction": {
  "maneuver": "TURN_LEFT",
  "instructions": "Turn left toward Frontage Rd"
}

instructions może zawierać dodatkowe informacje o kroku. Przykład:

"navigationInstruction": {
  "maneuver": "TURN_SLIGHT_LEFT",
  "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days"
}

Pozostałe właściwości w kroku opisują informacje o kroku, takie jak distanceMeters, duration i polyline:

{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  }
}

Określ język instrukcji krok po kroku

Interfejs API zwraca informacje o trasie w języku lokalnym, w razie potrzeby transliterowane na pismo czytelne dla użytkownika, z zachowaniem preferowanego języka. Komponenty adresu są zwracane w tym samym języku.

  • Użyj parametru languageCode w żądaniu, aby wyraźnie ustawić język trasy z listy obsługiwanych języków. Google często aktualizuje obsługiwane języki, więc ta lista może nie być wyczerpująca.

  • Jeśli nazwa nie jest dostępna w określonym języku, interfejs API używa najbliższego dopasowania.

  • Określony język może mieć wpływ na zestaw wyników, które interfejs API zdecyduje się zwrócić, oraz na kolejność, w jakiej zostaną zwrócone. Geokoder interpretuje skróty w różny sposób w zależności od języka, np. skróty typów ulic lub synonimy, które mogą być prawidłowe w jednym języku, ale nie w innym. Na przykład utca i tér to synonimy ulicy w języku węgierskim.

Omówienie tablicy geocodingResults

W przypadku każdej lokalizacji w żądaniu (punktu początkowego, docelowego lub pośredniego), która została określona jako ciąg adresu lub kod Plus Code, interfejs API próbuje znaleźć najbardziej odpowiednią lokalizację, która ma odpowiedni identyfikator miejsca. Każdy element tablicy geocodingResults zawiera pole placeID z lokalizacją w postaci identyfikatora miejsca oraz pole type określające typ lokalizacji, np. street_address, premise lub airport.

Tablica geocodingResults zawiera 3 pola:

  • origin: identyfikator miejsca pochodzenia, jeśli został podany jako ciąg znaków adresu lub kod Plus Code. W przeciwnym razie to pole jest pomijane w odpowiedzi.

  • destination: jeśli został podany jako ciąg adresu lub kod plus, identyfikator miejsca docelowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.

  • intermediates: tablica zawierająca identyfikator miejsca wszystkich pośrednich punktów pośrednich określonych jako ciąg znaków adresu lub jako kod Plus Code. Jeśli określisz pośredni punkt orientacyjny za pomocą identyfikatora miejsca lub współrzędnych geograficznych, zostanie on pominięty w odpowiedzi. Użyj właściwości intermediateWaypointRequestIndex w odpowiedzi, aby określić, który pośredni punkt trasy w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.

"geocodingResults": {
    "origin": {
        "geocoderStatus": {},
        "type": [
             enum (Type)
        ],
        "placeId": string
    },
    "destination": {
        "geocoderStatus": {},
        "type": [
            enum (Type)
        ],
        "placeId": string
    },
    "intermediates": [
        {
            "geocoderStatus": {},
            "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        },
        {
           "geocoderStatus": {},
           "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        }
    ]
}

Zrozumienie zlokalizowanych wartości odpowiedzi

Zlokalizowane wartości odpowiedzi to dodatkowe pole odpowiedzi, które zawiera zlokalizowany tekst dla zwracanych wartości parametrów. Zlokalizowany tekst jest podawany w przypadku czasu trwania podróży, odległości i systemu jednostek (metrycznego lub imperialnego). Możesz poprosić o wartości zlokalizowane za pomocą maski pola i określić język oraz układ jednostek lub użyć wartości wywnioskowanych przez interfejs API. Więcej informacji znajdziesz w artykule LocalizedValues.

Jeśli na przykład podasz kod języka niemieckiego (de) i jednostki imperialne, otrzymasz wartość distanceMeters równą 49889, 7, ale także zlokalizowany tekst podający pomiar odległości w języku niemieckim i jednostkach imperialnych, czyli „31 Meile”.

Oto przykład tego, co zobaczysz w przypadku zlokalizowanych wartości:

{ "localized_values":
  {
    "distance": { "text": "31,0 Meile/n" },
    "duration": { "text": 38 Minuten}.
    "static_duration": { "text": 36 Minuten}.
  }
}

Jeśli nie określisz języka ani systemu jednostek, interfejs API określi język i jednostki w następujący sposób:

  • Metoda ComputeRoutes określa jednostki lokalizacji i odległości na podstawie punktu pośredniego miejsca początkowego. W przypadku żądania wyznaczania trasy w Stanach Zjednoczonych interfejs API wnioskuje o en-US język i IMPERIAL jednostki.
  • Metoda ComputeRouteMatrix domyślnie używa języka „en-US” i jednostek METRYCZNYCH.