Trova un percorso

Sviluppatori dello Spazio economico europeo (SEE)

Un percorso è un tragitto navigabile tra una posizione di partenza, o origine, e una posizione di arrivo, o destinazione. Puoi scegliere di ottenere un itinerario per diverse modalità di trasporto, ad esempio a piedi, in bicicletta o con diversi tipi di veicoli. Puoi anche richiedere i dettagli del percorso, come la distanza, il tempo stimato per percorrerlo, i pedaggi previsti e le istruzioni passo passo per navigare lungo il percorso.

Chiama il metodo computeRoutes() per richiedere un percorso tra due località. L'esempio seguente mostra la definizione di una richiesta e la chiamata di computeRoutes() per ottenere un itinerario.

  // Import the Routes library.
  const { Route } = await google.maps.importLibrary('routes');

  // Define a computeRoutes request.
  const request = {
    origin: 'Mountain View, CA',
    destination: 'San Francisco, CA',
  };

  // Call the computeRoutes() method to get routes.
  const {routes} = await Route.computeRoutes(request);
    

Scegli i campi da restituire

Quando richiedi un percorso, devi utilizzare una maschera di campo per specificare le informazioni che la risposta deve restituire. Puoi specificare i nomi delle proprietà della classe di route nella maschera del campo.

L'utilizzo di una maschera di campo garantisce inoltre di non richiedere dati non necessari, il che a sua volta contribuisce a ridurre la latenza della risposta ed evita di restituire informazioni che il sistema non richiede.

Specifica l'elenco dei campi che ti servono impostando la proprietà ComputeRoutesRequest.fields, come mostrato nel seguente snippet:

TypeScript

// Define a routes request.
const request = {
  origin: 'Mountain View, CA',
  destination: 'San Francisco, CA',
  travelMode: 'DRIVING',
  fields: ['path'], // Request fields needed to draw polylines.
};

JavaScript

// Define a routes request.
const request = {
    origin: 'Mountain View, CA',
    destination: 'San Francisco, CA',
    travelMode: 'DRIVING',
    fields: ['path'], // Request fields needed to draw polylines.
};

Specificare le località per un percorso

Per calcolare un percorso, devi specificare almeno le posizioni dell'origine e della destinazione del percorso e una maschera di campo. Puoi anche specificare tappe intermedie lungo un percorso e utilizzare le tappe per fare altre cose, come aggiungere soste o punti di transito lungo un percorso.

In ComputeRoutesRequest, puoi specificare una località in uno dei seguenti modi:

Puoi specificare le posizioni per tutti i waypoint di una richiesta nello stesso modo oppure puoi combinarli. Ad esempio, puoi utilizzare le coordinate di latitudine/longitudine per il waypoint di partenza e un oggetto Place per il waypoint di destinazione.

Per efficienza e precisione, utilizza gli oggetti Place anziché le coordinate di latitudine/longitudine o le stringhe di indirizzo. Gli ID luogo sono univoci ed espliciti e forniscono vantaggi di geocodifica per il calcolo del percorso, come punti di accesso e variabili di traffico. Aiutano a evitare le seguenti situazioni che possono verificarsi con altri modi per specificare una posizione:

  • L'utilizzo delle coordinate di latitudine/longitudine può comportare l'allineamento della posizione alla strada più vicina a queste coordinate, che potrebbe non essere un punto di accesso alla proprietà o addirittura una strada che conduce rapidamente o in sicurezza alla destinazione.
  • Le stringhe di indirizzi devono prima essere geocodificate dall'API Routes per essere convertite in coordinate di latitudine/longitudine prima di poter calcolare un percorso. Questa conversione può influire sul rendimento.

Specificare una posizione come oggetto Place (preferibile)

Per specificare una posizione utilizzando un luogo, crea una nuova istanza di Place. Lo snippet seguente mostra la creazione di nuove istanze Place per origin e destination, quindi il loro utilizzo in un ComputeRoutesRequest:

TypeScript

// Use Place IDs in a directions request.
const originPlaceInstance = new Place({
  id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA
});

const destinationPlaceInstance = new Place({
  id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA
});

const requestWithPlaceIds = {
  origin: originPlaceInstance,
  destination: destinationPlaceInstance,
  fields: ['path'], // Request fields needed to draw polylines.
}; 

JavaScript

// Use Place IDs in a directions request.
const originPlaceInstance = new Place({
    id: 'ChIJiQHsW0m3j4ARm69rRkrUF3w', // Mountain View, CA
});
const destinationPlaceInstance = new Place({
    id: 'ChIJIQBpAG2ahYAR_6128GcTUEo', // San Francisco, CA
});
const requestWithPlaceIds = {
    origin: originPlaceInstance,
    destination: destinationPlaceInstance,
    fields: ['path'], // Request fields needed to draw polylines.
};

Coordinate di latitudine/longitudine

Per specificare una località come coordinate di latitudine/longitudine, crea una nuova istanza di google.maps.LatLngLiteral, google.maps.LatLngAltitude o google.maps.LatLngAltitudeLiteral. Lo snippet seguente mostra la creazione di nuove istanze google.maps.LatLngLiteral per origin e destination, e poi il loro utilizzo in un computeRoutesRequest:

TypeScript

// Use lat/lng in a directions request.
// Mountain View, CA
const originLatLng = {lat: 37.422000, lng: -122.084058};
// San Francisco, CA
const destinationLatLng = {lat: 37.774929, lng: -122.419415};

// Define a computeRoutes request.
const requestWithLatLngs = {
  origin: originLatLng,
  destination: destinationLatLng,
  fields: ['path'],
};

JavaScript

// Use lat/lng in a directions request.
// Mountain View, CA
const originLatLng = { lat: 37.422000, lng: -122.084058 };
// San Francisco, CA
const destinationLatLng = { lat: 37.774929, lng: -122.419415 };
// Define a computeRoutes request.
const requestWithLatLngs = {
    origin: originLatLng,
    destination: destinationLatLng,
    fields: ['path'],
};

Stringa dell'indirizzo

Le stringhe di indirizzo sono indirizzi letterali rappresentati da una stringa (ad esempio "1600 Amphitheatre Parkway, Mountain View, CA"). La geocodifica è il processo di conversione di una stringa di indirizzo in coordinate di latitudine e longitudine (ad esempio latitudine 37.423021 e longitudine -122.083739).

Quando passi una stringa di indirizzo come posizione di un waypoint, la libreria Routes esegue internamente la geocodifica della stringa per convertirla in coordinate di latitudine e longitudine.

Il seguente snippet mostra la creazione di un ComputeRoutesRequest con una stringa di indirizzo per origin e destination:

TypeScript

// Use address strings in a directions request.
const requestWithAddressStrings = {
  origin: '1600 Amphitheatre Parkway, Mountain View, CA',
  destination: '345 Spear Street, San Francisco, CA',
  fields: ['path'],
};

JavaScript

// Use address strings in a directions request.
const requestWithAddressStrings = {
    origin: '1600 Amphitheatre Parkway, Mountain View, CA',
    destination: '345 Spear Street, San Francisco, CA',
    fields: ['path'],
};

Impostare la regione per l'indirizzo

Se trasmetti una stringa di indirizzo incompleta come posizione di un waypoint, l'API potrebbe utilizzare coordinate di latitudine/longitudine geocodificate errate. Ad esempio, fai una richiesta specificando "Toledo" come origine e "Madrid" come destinazione per un itinerario in auto:

// Define a request with an incomplete address string.
const request = {
  origin: 'Toledo',
  destination: 'Madrid',
};
    

In questo esempio, "Toledo" viene interpretata come una città dello stato dell'Ohio negli Stati Uniti, non in Spagna. Pertanto, la richiesta restituisce un array vuoto, il che significa che non esistono route.

Puoi configurare l'API in modo che restituisca risultati orientati a una determinata regione includendo il parametro regionCode. Questo parametro specifica il codice regione come valore di due caratteri del ccTLD ("top-level domain"). La maggior parte dei codici ccTLD sono identici ai codici ISO 3166-1, con alcune eccezioni notevoli. Ad esempio, il TLD specifico per il paese del Regno Unito è "uk " (.co.uk), mentre il suo codice ISO 3166-1 è"gb " (tecnicamente per l'entità "Regno Unito di Gran Bretagna e Irlanda del Nord").

Una richiesta di indicazioni stradali da "Toledo" a "Madrid" che include il parametro regionCode restituisce risultati appropriati perché "Toledo" viene interpretata come una città della Spagna:

const request = {
  origin: 'Toledo',
  destination: 'Madrid',
  region: 'es', // Specify the region code for Spain.
};
    

Plus Code

Molte persone non hanno un indirizzo preciso, il che può rendere difficile la ricezione delle consegne. In alternativa, le persone con un indirizzo potrebbero preferire ricevere le consegne in luoghi più specifici, come un ingresso secondario o una banchina di carico.

I plus code sono come gli indirizzi stradali per persone o luoghi che non hanno un indirizzo vero e proprio. Anziché indirizzi con nomi e numeri di vie, i plus code si basano su coordinate di latitudine/longitudine e vengono visualizzati come numeri e lettere.

Google ha sviluppato i Plus Code per offrire a tutti i vantaggi degli indirizzi. Un Plus Code è un riferimento codificato alla posizione, derivato dalle coordinate di latitudine/longitudine, che rappresenta un'area: 1/8000 di grado per 1/8000 di grado (circa 14 m x 14 m all'equatore) o più piccola. Puoi utilizzare i Plus Code in sostituzione degli indirizzi stradali in luoghi in cui non esistono o in cui gli edifici non sono numerati o le strade non hanno un nome.

I Plus Code devono essere formattati come codice globale o codice composto:

  • Il codice globale è composto da un prefisso di 4 caratteri e da un codice locale di 6 o più caratteri. Ad esempio, per l'indirizzo "1600 Amphitheatre Parkway, Mountain View, CA", il codice globale è "849V" e il codice locale è "CWC8+R9". Quindi, utilizza l'intero plus code di 10 caratteri per specificare il valore della località come "849VCWC8+R9".
  • Il codice composto è composto da un codice locale di sei o più caratteri combinato con una posizione esplicita. Ad esempio, l'indirizzo "450 Serra Mall, Stanford, CA 94305, USA" ha un codice locale "CRHJ+C3". Per un indirizzo composto, combina il codice locale con la città, lo stato, il codice postale e la parte dell'indirizzo relativa al paese nel formato "CRHJ+C3 Stanford, CA 94305, USA".

Il seguente snippet mostra il calcolo di un percorso specificando un waypoint per l'origine e la destinazione del percorso utilizzando i Plus Code:

TypeScript

// Use Plus Codes in a directions request.
const requestWithPlusCodes = {
  origin: '849VCWC8+R9', // Mountain View, CA
  destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA
  fields: ['path'],
};

JavaScript

// Use Plus Codes in a directions request.
const requestWithPlusCodes = {
    origin: '849VCWC8+R9', // Mountain View, CA
    destination: 'CRHJ+C3 Stanford, CA 94305, USA', // Stanford, CA
    fields: ['path'],
};