Sprawdź odpowiedź na trasę

Gdy interfejs Routes API oblicza trasę, jako dane wejściowe wykorzystuje podane przez Ciebie punkty pośrednie i parametry konfiguracji. Interfejs API zwraca wtedy 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 prosisz:

Aby uwzględnić to w odpowiedzi Wyświetl tę dokumentację
Trasa z najniższym spalaniem lub energią na podstawie typu silnika. Konfigurowanie tras przyjaznych dla środowiska
Do 3 tras alternatywnych Wysyłanie zapytań o trasy alternatywne
Linia łamana dla całej trasy, dla każdego odcinka trasy oraz dla każdego etapu etapu. Prośba o linie łamane trasy
Szacowane opłaty drogowe z uwzględnieniem wszelkich rabatów oraz winiety dostępnych dla kierowcy lub pojazdu. Obliczanie opłat drogowych
Zlokalizowane odpowiedzi według kodów języka i jednostki miary (imperialnej lub metrycznej). 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 wprowadzania znajdziesz w dostępnych opcjach trasy i w treści żądania.

Korzystając z odpowiedzi, możesz przekazać klientom informacje niezbędne do wyboru trasy, która odpowiada ich potrzebom.

Informacje o maskach pól

Gdy wywołujesz metodę obliczania trasy, musisz określić maskę pola określającą pola, które mają być zwracane w odpowiedzi. Nie ma domyślnej listy zwróconych 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 sekcji Wybieranie informacji do zwrócenia.

Wyświetlanie informacji o prawach autorskich

Podczas wyświetlania wyników użytkownikom musisz dołączyć to oświadczenie o prawach autorskich:

Powered by Google, ©YEAR Google

Na przykład:

Powered by Google, ©2023 Google

Informacje o trasach, nogach i krokach

Zanim zapoznasz się z odpowiedziami zwracanymi przez interfejs Routes API, musisz znać komponenty tworzące trasę:

Trasa, etap 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 docelowego. Trasa składa się z co najmniej jednego etapu.

  • Noga: ścieżka z jednego punktu pośredniego na trasie do kolejnego punktu na trasie. Każda noga składa się z co najmniej 1 oddzielnego kroku.

    Trasa zawiera oddzielny odcinek ścieżki od każdego punktu pośredniego do kolejnego. Jeśli na przykład trasa obejmuje jeden punkt początkowy i jeden docelowy punkt pośredni, trasa składa się z jednego etapu. W przypadku każdego dodatkowego punktu pośredniego, który dodajesz do trasy po punkcie początkowym i docelowym, nazywanym pośrednim punktem pośrednim, interfejs API dodaje oddzielny etap.

    Interfejs API nie dodaje etapu dla pośredniego punktu pośredniego przejazdowego. Na przykład trasa obejmująca początkowy punkt pośredni, pośredni punkt pośredni i docelowy punkt na trasie obejmuje tylko jeden etap trasy biegnący od punktu początkowego do miejsca docelowego. Więcej informacji o punktach pośrednich znajdziesz w artykule Definiowanie pośredniego punktu pośredniego.

  • Krok: pojedyncza instrukcja na danym etapie trasy. Krok to najbardziej atomowa jednostka trasy. np. „Skręć w lewo na głównej ulicy”.

Treść odpowiedzi

Obiekt JSON reprezentujący odpowiedź interfejsu API ma 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ę przyjazną dla środowiska i maksymalnie 3 alternatywne trasy.

  • geocodingResults, tablica elementów typu GeocodingResults. Dla każdej lokalizacji w żądaniu (źródło, miejsce docelowe lub pośredni punkt pośredni) 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 wskazane w zgłoszeniu jako identyfikator miejsca lub współrzędne szerokości i długości geograficznej nie są uwzględniane. Jeśli wszystkie lokalizacje zostały określone za pomocą identyfikatorów miejsc lub współrzędnych szerokości i długości geograficznej, ta tablica nie jest dostępna.

  • fallbackInfo typu FallbackInfo. Jeśli interfejs API nie może obliczyć trasy ze wszystkich właściwości wejściowych, może w zastępstwie użyć innego sposobu obliczeń. W przypadku używania trybu kreacji zastępczej pole zawiera szczegółowe informacje o odpowiedzi kreacji zastępczej. W przeciwnym razie to pole jest nieskonfigurowane.

Odpowiedź ma taki format:

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

Odszyfruj tablicę tras

Odpowiedź zawiera tablicę routes, z której każdy element tablicy jest typu Route. Każdy element tablicy reprezentuje całą trasę od punktu początkowego do miejsca docelowego. Interfejs API zawsze zwraca co najmniej jedną trasę, tzw. trasę domyślną.

Możesz poprosić o dodatkowe trasy. Jeśli wybierzesz trasę przyjazną dla środowiska, tablica może zawierać 2 elementy: trasę domyślną i trasę przyjazną dla środowiska. Możesz też ustawić w żądaniu computeAlternativeRoutes wartość true, 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 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 obecne warunki jazdy i inne czynniki trasa domyślna i ekologiczna mogą być takie same. W tym przypadku tablica routeLabels zawiera obie etykiety: DEFAULT_ROUTE i FUEL_EFFICIENT.

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

Zapoznanie z tablicą nóg

Każdy element route w odpowiedzi zawiera tablicę legs, gdzie każdy element tablicy legs jest typu RouteLeg. Każdy etap w tablicy określa ścieżkę z jednego punktu do następnego punktu na trasie. Trasa zawsze obejmuje co najmniej jeden 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)
  }
}

Tablica kroków

Każdy etap odpowiedzi zawiera tablicę steps, w której każdy element tablicy steps jest typu RouteLegStep. Krok odpowiada jednej instrukcji na każdym etapie. Noga zawsze zawiera co najmniej jeden krok.

Każdy element 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 danym 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 tym kroku opisują informacje na jego temat, na przykład 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 dotyczących kroku

Interfejs API zwraca informacje o trasie w języku lokalnym, transliterację na skrypt, który w razie potrzeby może odczytać użytkownik, 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 na liście 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 podanym języku, interfejs API używa najbliższego dopasowania.

  • Określony język może wpływać na zestaw wyników zwracanych przez interfejs API oraz kolejność, w jakiej są one zwracane. Geokoder różnie interpretuje skróty w zależności od języka. Dotyczy to np. skrótów typów ulic lub synonimów, które mogą być prawidłowe w jednym języku, a w innym nie. Na przykład „utca” i „tér” to synonimy ulicy w języku węgierskim.

Opis tablicy geocodingResults

W przypadku każdej lokalizacji w żądaniu (źródło, miejsce docelowe lub pośredni punkt pośredni), która została określona jako ciąg adresu lub kod plus, interfejs API próbuje znaleźć najtrafniejszą lokalizację, która ma odpowiedni identyfikator miejsca. Każdy element tablicy geocodingResults zawiera pole placeID zawierające lokalizację jako identyfikator miejsca oraz pole type, które określa typ lokalizacji, np. street_address, premise lub airport.

Tablica geocodingResults zawiera trzy pola:

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

  • destination: jeśli podano jako ciąg adresu lub kod Plus Code, identyfikator miejsca docelowego. W przeciwnym razie to pole jest pomijane w odpowiedzi.

  • intermediates: tablica zawierająca identyfikator miejsca pośrednich punktów pośrednich określonych w postaci ciągu adresu lub kodu Plus. Jeśli określisz pośredni punkt pośredni przy użyciu identyfikatora miejsca lub współrzędnych szerokości i długości geograficznej, zostanie on pominięty w odpowiedzi. Użyj w odpowiedzi właściwości intermediateWaypointRequestIndex, aby określić, który pośredni 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
        }
    ]
}

Wartości zlokalizowanych odpowiedzi

Zlokalizowane wartości odpowiedzi to dodatkowe pole odpowiedzi, które zawiera zlokalizowany tekst zwracanych wartości parametrów. Dla czasu trwania podróży, odległości i systemu jednostek (metrycznych lub imperialnych) podawany jest tekst zlokalizowany. Za pomocą maski pola zgłaszasz zlokalizowane wartości. Możesz określić język i system jednostek lub użyć wartości uzyskanych przez interfejs API. Szczegółowe informacje znajdziesz w sekcji LocalizedValues.

Jeśli np.określisz kod języka dla jednostek niemieckich (de) i imperialnych, otrzymasz wartość distanceMeters równą 49889, 7, ale zlokalizowany tekst będzie też zawierać informację o odległości w jednostkach niemieckich i imperialnych, czyli „31 Meile”.

Oto przykład wartości zlokalizowanych:

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

Jeśli nie określisz języka lub systemu jednostek, interfejs API ustali język i jednostki w ten sposób:

  • Metoda ComputeRoutes określa lokalizację i jednostki odległości od punktu początkowego. Na przykład w przypadku żądania routingu w Stanach Zjednoczonych interfejs API określa język en-US i jednostki IMPERIAL.
  • Metoda ComputeRouteMatrix domyślnie ustawia język „en-US” i jednostki METRIC.