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 parametry konfiguracyjne, które podajesz. Następnie interfejs API zwraca odpowiedź zawierającą domyślną trasę i co najmniej 1 trasę alternatywną.

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

Aby uwzględnić to w odpowiedzi Zobacz tę dokumentację
Trasa z najniższym zużyciem paliwa lub energii na podstawie typu silnika pojazdu. Konfigurowanie tras przyjaznych dla środowiska
Maksymalnie 3 trasy alternatywne Żądanie tras alternatywnych
Linia łamana całej trasy, każdego etapu trasy i każdego kroku etapu. Żądanie linii łamanych trasy
Szacowane opłaty drogowe z uwzględnieniem rabatów lub karnetów dostępnych dla kierowcy lub pojazdu. Obliczanie opłat drogowych
Zlokalizowane odpowiedzi według kodów języka i jednostki miary (imperialnej lub metrycznej). Żą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 wejściowych znajdziesz w sekcji Dostępne opcje trasy i w treści żądania.

Korzystając z odpowiedzi, możesz przekazać klientom informacje niezbędne do wybrania odpowiedniej trasy.

Maski pól

Gdy wywołujesz metodę obliczania trasy, musisz określić maskę pól, 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 wyraźnie określisz w masce pól.

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

Wyświetlanie informacji o prawach autorskich

Gdy wyświetlasz wyniki użytkownikom, musisz dodać to oświadczenie o prawach autorskich:

Powered by Google, ©YEAR Google

Na przykład:

Powered by Google, ©2023 Google

Trasy, etapy i kroki

Zanim zapoznasz się z odpowiedzią zwracaną przez interfejs Routes API, musisz zrozumieć, z jakich komponentów składa się trasa:

Trasa, odcinek i krok.

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

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

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

    Trasa zawiera osobny etap dla ścieżki od każdego punktu pośredniego do następnego. Jeśli na przykład trasa zawiera tylko 1 początkowy punkt pośredni i 1 punkt docelowy, trasa zawiera 1 etap. 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 etap.

    Interfejs API nie dodaje etapu dla punktu pośredniego. Na przykład trasa, która zawiera początkowy punkt pośredni, punkt pośredni i punkt docelowy, zawiera tylko 1 etap od punktu początkowego do punktu docelowego, przechodząc przez punkt pośredni. Więcej informacji o punktach pośrednich znajdziesz w artykule Definiowanie punktu pośredniego.

  • Krok: pojedyncza instrukcja na etapie trasy. Krok to najbardziej podstawowa jednostka trasy. Na przykład krok może wskazywać „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 1 element dla każdej trasy zwróconej przez interfejs API. Tablica może zawierać maksymalnie 5 elementów: trasę domyślną, trasę przyjazną dla środowiska i maksymalnie 3 trasy alternatywne.

  • geocodingResults – tablica elementów typu GeocodingResults. W przypadku każdej lokalizacji w żądaniu (początkowej, docelowej lub pośredniej punktu pośredniego), którą określisz 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 – typ FallbackInfo. Jeśli interfejs API nie może obliczyć trasy na podstawie wszystkich właściwości wejściowych, może wrócić do innej metody obliczania. Gdy używany jest tryb rezerwowy, to pole zawiera szczegółowe informacje o odpowiedzi rezerwowej. W przeciwnym razie to pole jest nieustawione.

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 routes

Odpowiedź zawiera tablicę routes, której każdy element jest typu Route. Każdy element tablicy reprezentuje całą trasę od miejsca początkowego 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 Wskazuje trasę alternatywną.

Tablica legs zawiera definicję każdego etapu 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 drogowe i inne czynniki trasa domyślna i trasa przyjazna dla środowiska mogą być takie same. W takim przypadku tablica routeLabels zawiera obie etykiety: DEFAULT_ROUTE i FUEL_EFFICIENT.

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

Interpretowanie tablicy legs

Każdy route w odpowiedzi zawiera tablicę legs, której każdy element tablicy legs jest typu RouteLeg. Każdy etap 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 etap.

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

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

Interpretowanie tablicy steps

Każdy etap w odpowiedzi zawiera tablicę steps, której każdy element tablicy steps jest typu RouteLegStep. Krok odpowiada pojedynczej instrukcji na etapie. 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"
}

Właściwość instructions może zawierać dodatkowe informacje o kroku. Na 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 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ślanie języka instrukcji kroku

Interfejs API zwraca informacje o trasie w języku lokalnym, w razie potrzeby transliterowane na skrypt czytelny dla użytkownika, przy zachowaniu 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 listę obsługiwanych języków, dlatego może ona nie być kompletna.

  • 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 wpływać na zestaw wyników, które interfejs API wybiera do zwrócenia, oraz na kolejność ich zwracania. Geokoder inaczej interpretuje skróty 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.

Interpretowanie tablicy geocodingResults

W przypadku każdej lokalizacji w żądaniu (początkowej, docelowej lub pośredniej punktu pośredniego), która została określona jako ciąg adresu lub jako kod plus, interfejs API próbuje znaleźć najbardziej odpowiednią lokalizację z odpowiadającym jej identyfikatorem miejsca. Każdy element tablicy geocodingResults zawiera pole placeID z lokalizacją jako identyfikatorem miejsca oraz pole type określające typ lokalizacji , np. street_address, premise lub airport.

Tablica geocodingResults zawiera 3 pola:

  • origin: jeśli został określony jako ciąg adresu lub kod plus, identyfikator miejsca początkowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.

  • destination: jeśli został określony 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 każdego punktu pośredniego określonego jako ciąg adresu lub kod plus. Jeśli określisz punkt pośredni 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 punkt pośredni 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
        }
    ]
}

Interpretowanie 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 dostępny w przypadku czasu trwania podróży, odległości i systemu jednostek (metrycznego lub imperialnego). Możesz poprosić o zlokalizowane wartości za pomocą maski pól. Możesz też 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 określisz kod języka niemieckiego (de) i jednostki imperialne, otrzymasz wartość distanceMeters równą 49889, 7, ale też zlokalizowany tekst podający tę odległość 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 wywnioskuje język i jednostki w ten sposób:

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