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 wtedy odpowiedź zawierającą domyślną trasę i co najmniej jedną 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 paliwo- lub energooszczędności w zależności od typu silnika. Konfigurowanie tras przyjaznych dla środowiska
Maksymalnie 3 trasy alternatywne Prośba o trasy alternatywne
Linia łamana dla 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 rabatów na opłaty za przejazd 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 (imperialnych lub metrycznych). Żądanie zlokalizowanych wartości
Aby sformatować instrukcje nawigacji jako ciąg tekstowy HTML, dodaj HTML_FORMATTED_NAVIGATION_INSTRUCTIONS do extraComputations. Dodatkowe obliczenia

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

Na podstawie odpowiedzi możesz przekazać klientom informacje niezbędne do wyboru odpowiedniej trasy.

Maski pól

Gdy wywołujesz metodę obliczania trasy, musisz podać maskę pola, która określa, 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 wyraźnie określisz w masce pola.

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

Wyświetlanie informacji o prawach autorskich

Wyświetlając wyniki użytkownikom, musisz podać następujące oświadczenie o prawach autorskich:

Powered by Google, ©YEAR Google

Na przykład:

Powered by Google, ©2023 Google

Informacje o trasach, odcinkach i krokach

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 odcinek 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 etapu. W przypadku każdego dodatkowego punktu pośredniego dodanego do trasy po punkcie początkowym i docelowym, zwanego pośrednim punktem trasy, interfejs API dodaje osobny odcinek.

    Interfejs API nie dodaje etapu dla pośredniego punktu przelotowego. Na przykład trasa, która zawiera punkt początkowy, pośredni punkt przelotowy i punkt docelowy, ma tylko jeden odcinek z punktu początkowego do punktu docelowego, który przebiega przez punkt przelotowy. 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 jednym elemencie dla każdej trasy zwróconej 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 (miejsca początkowego, docelowego lub pośredniego) określonej 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ę, zwaną 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ć w żądaniu wartość computeAlternativeRoutes na true, aby dodać do odpowiedzi maksymalnie 3 trasy alternatywne.

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, durationpolyline,, 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 drogowe i inne czynniki trasa domyślna i trasa przyjazna dla środowiska mogą być takie same. W tym przypadku tablica routeLabels zawiera obie etykiety: DEFAULT_ROUTEFUEL_EFFICIENT.

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

Omówienie 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 punktu pośredniego na trasie. 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, durationpolyline, 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 element jest typu RouteLegStep.steps Krok odpowiada pojedynczej instrukcji dotyczącej nogi. Trasa 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, durationpolyline:

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

Określanie języka instrukcji kroku

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

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

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

  • Określony język może mieć wpływ na zestaw wyników zwracanych przez interfejs API i kolejność, w jakiej są one zwracane. 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 słowa „ulica” w języku węgierskim.

Informacje o tablicy geocodingResults

W przypadku każdej lokalizacji w żądaniu (miejsca docelowego, miejsca docelowego lub pośredniego punktu trasy), 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: jeśli został podany jako ciąg znaków adresu lub jako kod plus, identyfikator miejsca pochodzenia. W przeciwnym razie to pole jest pomijane w odpowiedzi.

  • destination: jeśli został podany jako ciąg znaków adresu lub kod plus, identyfikator miejsca docelowego. W przeciwnym razie to pole zostanie pominięte 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. Jeśli określisz pośredni punkt trasy 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
        }
    ]
}

Informacje o zlokalizowanych wartościach odpowiedzi

Zlokalizowane wartości odpowiedzi to dodatkowe pole odpowiedzi, które zawiera zlokalizowany tekst dla zwracanych wartości parametrów. Zlokalizowany tekst jest dostępny w przypadku czasu trwania przejazdu, odległości i systemu jednostek (metrycznego lub imperialnego). Żądanie wartości zlokalizowanych wysyłasz za pomocą maski pola. Możesz określić język i system jednostek lub użyć wartości wywnioskowanych przez interfejs API. Więcej informacji znajdziesz w sekcji 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, jak wyglądałyby zlokalizowane 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 wywnioskuje język i jednostki w ten sposób:

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