Sprawdź odpowiedź na trasę

Gdy interfejs Routes API oblicza trasę, przyjmuje jako dane wejściowe punkty pośrednie i parametry konfiguracji. Następnie 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 żądanych pól:

Aby uwzględnić to w odpowiedzi Wyświetl dokumentację
trasa z najniższym spalaniem lub energią na podstawie typu silnika; Konfigurowanie tras przyjaznych dla środowiska
maks. 3 alternatywne trasy, Wysyłanie prośby o trasę alternatywną
Linia łamana całej trasy, każdego jej etapu i każdego etapu odcinka. Żądanie linii łamanych trasy
Szacowane opłaty z uwzględnieniem rabatów oraz biletów dostępnych dla kierowcy lub pojazdu. Obliczanie opłat drogowych
Zlokalizowane odpowiedzi według kodów języka i jednostki miary (imperialne lub metryczne). Poproś o zlokalizowane wartości
Aby sformatować instrukcje nawigacyjne 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 sekcji Treść żądania.

Korzystając z niej, możesz podać klientom informacje niezbędne do wyboru najlepszej trasy.

Informacje o maskach pól

Gdy wywołujesz metodę służącą do obliczenia trasy, musisz określić maskę pola określającą pola, które mają zostać zwrócone 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 wyraźnie określone w masce pól.

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

Informacje o wyświetlaniu praw autorskich

Wyświetlając wyniki użytkownikom, musisz dołączyć do listy 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 przeanalizujesz odpowiedź zwracaną przez interfejs Routes API, zapoznaj się z komponentami, które składają się na trasę:

Trasa, etap i krok.

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

  • Trasa: cała podróż od punktu na trasie początkowej przez dowolne pośrednie punkty na trasie do docelowego punktu na trasie. Trasa ma jeden lub więcej etapów.

  • Legenda: ścieżka od jednego punktu pośredniego na trasie do kolejnego. Każdy etap składa się z jednego lub kilku odrębnych kroków.

    Trasa zawiera oddzielny etap ścieżki od każdego punktu pośredniego do następnego. Jeśli na przykład trasa zawiera 1 punkt na trasie początkowy i 1 docelowy punkt na trasie, to trasa ma jeden etap. Dla każdego dodatkowego punktu pośredniego, który dodasz do trasy po punkcie początkowym i docelowym, nazywanym pośrednim punktem na trasie, interfejs API dodaje osobny etap.

    Interfejs API nie dodaje etapu dla pośredniego punktu pośredniego przejściowego. Na przykład trasa zawierająca punkt na trasie początkowy, pośredni punkt na trasie i docelowy punkt na trasie składa się tylko z jednego etapu przebiegającego przez punkt początkowy. Więcej informacji o przelotowych punktach pośrednich znajdziesz w sekcji Definiowanie przekazującego punktu na trasie.

  • Krok: pojedyncza instrukcja na końcu trasy. Krok to najbardziej atomowa jednostka trasy. Na przykład krok może mieć postać „Skręć w lewo przy ulicy Głównej”.

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 dla każdej trasy zwróconej przez interfejs API. Tablica może zawierać maksymalnie 5 elementów: trasa domyślna, trasa przyjazna środowisku i maksymalnie 3 trasy alternatywne.

  • geocodingResults, tablica elementów typu GeocodingResults. W przypadku każdej lokalizacji w żądaniu (origin, miejsca docelowego lub pośredniego punktu pośredniego) podanej jako ciąg adresu lub w postaci kodu Plus interfejs API przeprowadza wyszukiwanie identyfikatora miejsca. Każdy element tej tablicy zawiera identyfikator miejsca odpowiadający lokalizacji. Lokalizacje w żądaniu określone jako identyfikator miejsca lub jako 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, tablica ta nie zostanie udostępniona.

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

Odpowiedź ma postać:

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

Odszyfrowywanie tablicy tras

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

Możesz poprosić o dodatkowe trasy. Jeśli wysyłasz żądanie trasy przyjaznej 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 przez właściwość tablicy routeLabels:

Wartość Opis
DEFAULT_ROUTE Identyfikuje trasę domyślną.
FUEL_EFFICIENT Określa trasę przyjazną środowisku.
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 na drodze i inne czynniki trasa domyślna i trasa przyjazna dla środowiska mogą być takie same. W tym przypadku tablica routeLabels zawiera obie etykiety: DEFAULT_ROUTE i FUEL_EFFICIENT.

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

Informacje o tablicy nogi

Każdy element route w odpowiedzi zawiera tablicę legs, w której każdy element tablicy legs jest typu RouteLeg. Każdy etap tablicy definiuje ścieżkę od jednego punktu do kolejnego. Trasa zawsze ma co najmniej jeden etap.

Właściwość legs zawiera definicję każdego kroku na odcinku 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)
  }
}

Informacje o tablicy kroków

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

Każdy element tablicy steps zawiera właściwość navigationInstruction typu NavigationInstruction, która zawiera instrukcję dotyczącą 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 tym kroku zawierają informacje o tym kroku, np. 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 kroku

Interfejs API zwraca informacje o trasie w języku lokalnym, które w razie potrzeby są transliterowane do skryptu zrozumiałego dla użytkownika, z zachowaniem preferowanego języka. Komponenty adresu są zwracane w tym samym języku.

  • Użyj parametru languageCode żądania, aby jednoznacznie 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ć pełna.

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

  • Określony język może wpływać na zbiór wyników, które interfejs API wybiera do zwrócenia, oraz na kolejność ich zwracania. Geokoder interpretuje skróty w różny sposób w zależności od języka, np. akronimami nazw ulic lub ich synonimami mogącymi być 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 (origin, miejsca docelowego lub pośredniego punktu pośredniego), która została określona jako ciąg adresu lub w postaci kodu Plus, interfejs API próbuje znaleźć najtrafniejszą lokalizację, która ma odpowiedni identyfikator miejsca. Każdy element tablicy geocodingResults zawiera pole placeID z lokalizacją jako identyfikator miejsca oraz pole type z typem 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 Code, identyfikator miejsca źródła. W przeciwnym razie to pole jest pomijane w odpowiedzi.

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

  • intermediates: tablica zawierająca identyfikatory miejsc pośrednich punktów pośrednich określonych w postaci ciągu adresu lub w postaci kodu Plus. Jeśli określisz pośredni punkt pośredni przy użyciu identyfikatora miejsca lub współrzędnych geograficznych, 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
        }
    ]
}

Omówienie 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 zawiera informacje o czasie trwania podróży, odległości i systemie jednostek (metrycznych lub imperialnych). Za pomocą maski pól wysyłasz żądanie dotyczące zlokalizowanych wartości i możesz określić język oraz system jednostek lub użyć wartości wywnioskowanych przez interfejs API. Szczegółowe informacje znajdziesz w sekcji LocalizedValues.

Jeśli na przykład podasz kod języka dla jednostek niemieckich (de) i imperialnych, distanceMeters otrzyma wartość 49889,7, ale również zlokalizowany tekst, który podaje pomiar odległości w niemieckich i imperialnych jednostkach, np. „31 Meile”.

Oto przykład tego, co można zobaczyć 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 lub systemu jednostek, interfejs API określi język i jednostki w ten sposób:

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