Esamina la risposta del percorso

Quando l'API Routes calcola una route, utilizza i Waypoint e i parametri di configurazione che hai fornito come input. L'API restituisce quindi una risposta contenente la route predefinita e una o più route alternative.

La risposta può includere diversi tipi di route e altri dati, in base ai campi richiesti:

Per includerlo nella risposta Visualizza questa documentazione
Il percorso a più basso consumo di carburante o energia in base al tipo di motore del veicolo. Configura route ecosostenibili
Fino a tre percorsi alternativi Richiedere percorsi alternativi
La polilinea di un intero percorso, per ogni tratto di un percorso e per ogni passo di una tratta. Richiedi polilinee dei percorsi
I pedaggi stimati, tenendo conto di eventuali sconti o pass disponibili per il conducente o il veicolo. Calcolare i pedaggi
Risposte localizzate in base ai codici lingua e all'unità di misura (imperiale o metrica). Richiedere valori localizzati
Per formattare le istruzioni di navigazione come stringa di testo HTML, aggiungi HTML_FORMATTED_NAVIGATION_INSTRUCTIONS a extraComputations. Calcolo extra

Per l'elenco completo delle opzioni di input, vedi Opzioni di route disponibili e Corpo della richiesta.

Utilizzando la risposta, puoi fornire ai clienti le informazioni necessarie per selezionare il percorso appropriato per i loro requisiti.

Informazioni sulle maschere dei campi

Quando chiami un metodo per calcolare una route, devi specificare una maschera di campo che definisca i campi che vuoi che vengano restituiti nella risposta. Non esiste un elenco predefinito di campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.

Gli esempi in questo documento mostrano l'intero oggetto risposta senza prendere in considerazione le maschere di campo. In un ambiente di produzione, la risposta includerebbe solo i campi specificati esplicitamente nella maschera dei campi.

Per ulteriori informazioni, vedi Scegliere le informazioni da restituire.

Informazioni sulla visualizzazione di copyright

Devi includere la seguente dichiarazione sul copyright quando mostri i risultati agli utenti:

Powered by Google, ©YEAR Google

Ad esempio:

Powered by Google, ©2023 Google

Informazioni su percorsi, tappe e passi

Prima di esaminare la risposta restituita dall'API Routes, dovresti conoscere i componenti che costituiscono una route:

Percorso, tratta e passo.

La tua risposta potrebbe contenere informazioni su ciascuno di questi componenti del percorso:

  • Route: l'intero viaggio dal tappa di origine, attraverso eventuali tappe intermedie, al punto di destinazione. Un percorso è costituito da una o più tratte.

  • Tasta: il percorso da un tappa in un percorso al tappe successivo. Ogni tratto è costituito da uno o più passaggi distinti.

    Un percorso contiene una tratta separata per il percorso da ogni tappa a quella successiva. Ad esempio, se contiene un solo tappa di origine e un solo punto di destinazione, contiene un'unica tratta. Per ogni tappa aggiuntiva aggiunta alla route dopo l'origine e la destinazione, chiamata routepoint intermedio, l'API aggiunge una tratta separata.

    L'API non aggiunge una tratta per un Waypoint intermedio pass-through. Ad esempio, una route che contiene un tappa di origine, un punto di passaggio intermedio e un punto di arrivo di destinazione, contiene solo una tratta dall'origine alla destinazione e viceversa. Per ulteriori informazioni sui punti di percorso che prevedono il passaggio, consulta Definire un percorso di passaggio.

  • Passaggio: una singola istruzione lungo il tratto di un percorso. Un passaggio è l'unità più atomica di una route. Ad esempio, un passaggio può indicare "Svolta a sinistra sulla via principale".

Cosa c'è nella risposta

L'oggetto JSON che rappresenta la risposta dell'API contiene le seguenti proprietà di primo livello:

  • routes, un array di elementi di tipo Route. L'array routes contiene un elemento per ogni route restituita dall'API. L'array può contenere un massimo di cinque elementi: la route predefinita, quella ecosostenibile e fino a tre route alternative.

  • geocodingResults, un array di elementi di tipo GeocodingResults. Per ogni posizione nella richiesta (origine, destinazione owaypoint intermedio) che hai specificato come stringa indirizzo o Plus Code, l'API esegue una ricerca ID luogo. Ogni elemento di questo array contiene l'ID luogo corrispondente a una località. Le località nella richiesta specificate come ID luogo o coordinate di latitudine/longitudine non vengono incluse. Se hai specificato tutte le località utilizzando gli ID luogo o le coordinate di latitudine e longitudine, questo array non viene fornito.

  • fallbackInfo, di tipo FallbackInfo. Se l'API non è in grado di calcolare una route da tutte le proprietà di input, potrebbe utilizzare un metodo di calcolo diverso per utilizzare un metodo di riserva. Quando viene utilizzata la modalità di riserva, questo campo contiene informazioni dettagliate sulla risposta di riserva. In caso contrario, il campo non viene configurato.

La risposta ha il seguente formato:

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

Decifra l'array di route

La risposta contiene l'array routes, in cui ogni elemento dell'array è di tipo Route. Ogni elemento array rappresenta un'intera route dall'origine alla destinazione. L'API restituisce sempre almeno una route, denominata route predefinita.

Puoi richiedere percorsi aggiuntivi. Se richiedi una route ecosostenibile, l'array può contenere due elementi: la route predefinita e quella ecosostenibile. In alternativa, imposta computeAlternativeRoutes su true nella richiesta per aggiungere fino a tre percorsi alternativi alla risposta.

Ogni route nell'array è identificata con la proprietà dell'array routeLabels:

Valore Descrizione
DEFAULT_ROUTE Identifica la route predefinita.
FUEL_EFFICIENT Identifica il percorso ecosostenibile.
DEFAULT_ROUTE_ALTERNATE Indica un percorso alternativo.

L'array legs contiene la definizione di ogni tratto del percorso. Le restanti proprietà, come distanceMeters, duration e polyline,, contengono informazioni sulla route nel suo insieme:

{
  "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
}

A causa delle condizioni di guida attuali e di altri fattori, il percorso predefinito e il percorso ecosostenibile possono coincidere. In questo caso, l'array routeLabels contiene entrambe le etichette: DEFAULT_ROUTE e FUEL_EFFICIENT.

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

Comprendere l'array di gambe

Ogni elemento route nella risposta contiene un array legs, dove ogni elemento dell'array legs è di tipo RouteLeg. Ogni tratto dell'array definisce il percorso da un tappa a quello successivo lungo il percorso. Un percorso contiene sempre almeno una tratta.

La proprietà legs contiene la definizione di ogni passaggio lungo il tratto nell'array steps. Le proprietà rimanenti, come distanceMeters, duration e polyline, contengono informazioni sul tratto.

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

Informazioni sull'array di passaggi

Ogni tratto della risposta contiene un array steps, in cui ogni elemento dell'array steps è di tipo RouteLegStep. Un passaggio corrisponde a una singola istruzione lungo la gamba. Una gamba contiene sempre almeno un passaggio.

Ogni elemento nell'array steps include la proprietà navigationInstruction, di tipo NavigationInstruction, che contiene l'istruzione step. Ad esempio:

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

Il instructions potrebbe contenere informazioni aggiuntive sul passaggio. Ad esempio:

"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"
}

Le restanti proprietà nel passaggio descrivono le informazioni sul passaggio, ad esempio distanceMeters, duration e polyline:

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

Specifica la lingua delle istruzioni dei passaggi

L'API restituisce le informazioni sulle route nella lingua locale, traslitterate in uno script leggibile dall'utente, se necessario, osservando la lingua preferita. I componenti dell'indirizzo vengono tutti restituiti nella stessa lingua.

  • Usa il parametro languageCode di una richiesta per impostare esplicitamente la lingua della route dall'elenco delle lingue supportate. Spesso Google aggiorna le lingue supportate, pertanto l'elenco potrebbe non essere esaustivo.

  • Se un nome non è disponibile nella lingua specificata, l'API utilizza la corrispondenza più vicina.

  • La lingua specificata può influire sull'insieme di risultati che l'API sceglie di restituire e sull'ordine in cui vengono restituiti. Il geocodificatore interpreta le abbreviazioni in modo diverso a seconda della lingua, ad esempio le abbreviazioni dei tipi di strade o i sinonimi che possono essere validi in una lingua ma non in un'altra. Ad esempio, utca e tér sono sinonimi di strada in ungherese.

Informazioni sull'array geocodingResults

Per ogni località nella richiesta (origine, destinazione o waypoint intermedio) specificata come stringa di indirizzo o Plus Code, l'API cerca di trovare la località più pertinente con un ID luogo corrispondente. Ogni elemento dell'array geocodingResults contiene il campo placeID contenente la località come ID luogo e un campo type che specifica il tipo di località, ad esempio street_address, premise o airport.

L'array geocodingResults contiene tre campi:

  • origin: se è stato specificato come stringa indirizzo o come Plus Code, l'ID luogo dell'origine. In caso contrario, questo campo viene omesso dalla risposta.

  • destination: se è stato specificato come stringa indirizzo o come Plus Code, l'ID luogo della destinazione. In caso contrario, questo campo viene omesso dalla risposta.

  • intermediates: un array contenente l'ID luogo di qualsiasi Waypoint intermedio specificato come stringa di indirizzo o come Plus Code. Se specifichi un tappa intermedia utilizzando un ID luogo o le coordinate di latitudine e longitudine, questo viene omesso dalla risposta. Utilizza la proprietà intermediateWaypointRequestIndex nella risposta per determinare quale tappa intermedia della richiesta corrisponde all'ID luogo nella risposta.

"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
        }
    ]
}

Informazioni sui valori delle risposte localizzate

I valori localizzati della risposta sono un campo di risposta aggiuntivo che fornisce testo localizzato per i valori dei parametri restituiti. Viene fornito un testo localizzato per durata del viaggio, distanza e sistema di unità (sistema metrico o imperiale). Puoi richiedere valori localizzati utilizzando una maschera di campo e puoi specificare la lingua e il sistema di unità o utilizzare i valori dedotti dall'API. Per i dettagli, consulta LocalizedValues.

Ad esempio, se specifichi un codice lingua per il tedesco (de) e le unità imperiali, il valore distanceMeters è 49889,7, ma anche il testo localizzato che prevede la misurazione della distanza in tedesco e nelle unità imperiali, ad esempio "31 Meile".

Ecco un esempio di ciò che vedresti per i valori localizzati:

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

Se non specifichi la lingua o il sistema di unità, l'API deduce la lingua e le unità come segue:

  • Il metodo ComputeRoutes deduce le unità di posizione e distanza dal tappa di origine. Di conseguenza, per una richiesta di routing negli Stati Uniti, l'API deduce la lingua en-US e le unità IMPERIAL.
  • Per impostazione predefinita, il metodo ComputeRouteMatrix utilizza la lingua "en-US" e le unità METRIC.