Navigare su percorsi per veicoli di grandi dimensioni

A chi è rivolta questa guida:leggi questa guida se sei uno sviluppatore di app mobile responsabile della creazione dell'esperienza di navigazione passo passo per i conducenti di camion, autobus o altri veicoli commerciali di grandi dimensioni.

Argomenti trattati in questa guida:questa guida spiega come prendere un percorso specifico per i camion generato dall'API Routes o dall'API Route Optimization e utilizzarlo per attivare una sessione di navigazione passo passo con l'SDK Navigation per iOS.

Obiettivi didattici

Imparerai a svolgere le seguenti attività:

  • Utilizza un routeToken per collegare la pianificazione del percorso di backend con l'esperienza di navigazione in-app.
  • Configura l'SDK Navigation per utilizzare un itinerario per camion pianificato in anticipo.
  • Scopri come vengono visualizzate le limitazioni specifiche per i camion per il conducente nell'interfaccia utente di navigazione.

Prerequisiti

Prima di iniziare, assicurati di soddisfare i seguenti requisiti:

1. Richiedere l'accesso per il progetto

Il calcolo del percorso per veicoli di grandi dimensioni è disponibile per un gruppo limitato di clienti. Per esprimere interesse e richiedere l'accesso per il tuo progetto Google Cloud, compila il modulo di contatto. Un rappresentante di Google ti contatterà per illustrarti i passaggi successivi.

Una volta concesso l'accesso da parte di Google, assicurati che il tuo progetto Google Cloud sia sottoposto a provisioning per il routing di veicoli di grandi dimensioni.

Se la tua organizzazione utilizza progetti Google Cloud separati per le API di routing di backend e l'SDK Navigation, contatta Google per eseguire il provisioning di ogni progetto.

2. Configura la generazione di route di backend e ottieni un token di route

Prima di iniziare la navigazione sul dispositivo, il server di backend deve generare un itinerario per camion e ottenere un routeToken utilizzando una delle seguenti API:

La richiesta di backend deve specificare travelMode: TRUCK insieme agli attributi fisici del veicolo (altezza, larghezza, lunghezza, peso, numero di assi e carico di materiali pericolosi). L'API di routing restituisce un routeToken nella risposta, che il server backend passa alla tua app mobile.

3. Soddisfare i requisiti minimi di sistema e dell'SDK

La tua app deve utilizzare la versione minima richiesta dell'SDK Navigation 5.4.0 o versioni successive.

Inoltre, il tuo progetto deve soddisfare i requisiti di configurazione dell'SDK Navigation standard.

Limitazioni e linee guida operative

Prima di iniziare, tieni presente le seguenti limitazioni e linee guida operative:

  • Disponibilità geografica: il calcolo dell'itinerario per veicoli di grandi dimensioni è disponibile nei 48 stati contigui degli Stati Uniti (disponibilità generale) e in Giappone (sperimentale). Non è disponibile in Alaska, Hawaii o nei territori degli Stati Uniti.
  • Consigli e sicurezza per il conducente: i conducenti non devono fare affidamento esclusivamente sui percorsi restituiti dall'SDK Navigation per essere sicuri o legali. Gli itinerari potrebbero non essere adatti al veicolo in tutte le condizioni stradali e seguirli potrebbe esporre i conducenti a pericoli come strade con altezza libera ridotta o con limiti di peso. I conducenti devono sempre rimanere vigili e rispettare i segnali stradali e i regolamenti locali.
  • Percorsi con il minimo sforzo: quando l'API di routing non riesce a trovare un percorso che rispetti completamente le limitazioni del veicolo, restituisce un percorso "con il minimo sforzo" che potrebbe comunque attraversare segmenti con limitazioni. Ad esempio, l'API Routes imposta il flag routeRestrictionsPartiallyIgnored nella risposta. Quando navighi su questi percorsi, l'SDK Navigation mostra i callout del percorso per evidenziare le limitazioni pertinenti. Pianifica attentamente i percorsi in questi casi e non utilizzare un percorso segnalato come unica fonte di riferimento per la pianificazione o la navigazione.
  • Funzionalità non supportate: il calcolo del percorso per veicoli di grandi dimensioni non supporta le seguenti funzionalità:
    • Prezzi dei pedaggi per i camion
    • Limiti di velocità specifici per camion o veicoli pesanti
    • Itinerario per materiali pericolosi radioattivi
  • Limiti di utilizzo: le richieste effettuate all'SDK Navigation rispettano i limiti di utilizzo e di quota standard. Per saperne di più, consulta Utilizzo e fatturazione.

Visualizzare l'interfaccia utente specifica per i camion (callout del percorso)

L'SDK Navigation mostra automaticamente avvisi visivi, chiamati callout del percorso, sulla mappa per avvisare i conducenti delle prossime limitazioni per i camion. I callout vengono visualizzati per le limitazioni che si verificano lungo il percorso pianificato, ma non vengono visualizzati su altre strade vicine.

L'SDK Navigation include callout per le seguenti limitazioni:

Limitazione Icona e testo del callout Condizioni di visualizzazione
Altezza Un'icona gialla di limitazione di altezza
Giallo = avviso, il tuo veicolo è vicino all'altezza massima consentita
Un'icona rossa di limitazione di altezza
Rosso = il tuo veicolo supera l'altezza massima consentita
Viene visualizzata una bolla gialla quando l'altezza del veicolo è vicina al limite.
Una mappa che mostra un avviso di limitazione di altezza
Viene visualizzato un callout rosso se l'itinerario non è conforme e viola un limite di altezza.
Una mappa che mostra una violazione del limite di altezza
Peso Un'icona di limitazione di peso Viene visualizzato un callout rosso quando il peso del veicolo supera il limite della strada.
Una mappa che mostra un'icona di limitazione di peso
Camion vietati Un'icona di divieto per i camion Viene visualizzato un callout rosso quando viaggi su un segmento stradale con una limitazione per i camion commerciali.
Una mappa che mostra un'icona di divieto per i camion
Merci pericolose Un'icona di merci pericolose Viene visualizzato un callout rosso quando il carico di materiali pericolosi del veicolo è vietato su un tratto di strada.
Una mappa che mostra un'icona di merci pericolose

Come funzionano i token di percorso

Un routeToken è uno snapshot criptato di un percorso creato dal backend di routing di Google. Contiene la geometria del percorso pianificato, nonché le dimensioni fisiche e il profilo di limitazione del veicolo.

Il flusso di lavoro segue questi passaggi:

  1. Richiedi percorso: il server di backend richiede un percorso per camion all'API Routes (o all'API Route Optimization).
  2. Ricezione del token: l'API di routing calcola l'itinerario conforme e restituisce un routeToken al tuo server di backend.
  3. Token di inoltro: il server di backend trasmette le coordinate routeToken e di destinazione alla tua app mobile.
  4. Passaggio all'SDK: l'app mobile passa routeToken all'SDK Navigation.
  5. Guida iniziale: l'SDK Navigation gestisce tutti gli aspetti dell'esperienza di navigazione passo passo, inclusi il rendering dei callout del percorso e la gestione del ricalcolo dinamico del percorso in base alle limitazioni del veicolo.

Ricalcoli dinamici e ricalcolo del percorso

Durante la navigazione attiva, le condizioni del traffico, le chiusure stradali o le svolte mancate potrebbero far deviare il veicolo dall'itinerario pianificato.

Quando si verifica il ricalcolo del percorso:

  • L'SDK Navigation ricalcola automaticamente il percorso verso la destinazione.
  • L'SDK conserva gli attributi e le dimensioni del veicolo codificati nel routeToken originale.
  • Il percorso ricalcolato evita strade con altezza libera ridotta, ponti con limiti di peso e strade vietate ai camion commerciali.

Implementazione: avviare un viaggio specifico per camion

Segui questi passaggi per inizializzare e avviare la navigazione passo passo con un token di percorso per veicoli di grandi dimensioni.

Passaggio 1: recupera il token di route dal backend

La tua app mobile riceve la stringa routeToken insieme alle coordinate della destinazione dal server di backend. Per informazioni dettagliate sulla generazione di questo token sul tuo server, consulta Generare itinerari e orari di arrivo stimati per veicoli di grandi dimensioni nella documentazione dell'API Routes.

Il seguente codice è un token di percorso di esempio:

{
  "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}

Passaggio 2: passa il token al navigatore

Passa i waypoint routeToken e di destinazione al metodo mapView.navigator setDestinations.

Quando configuri i waypoint e passi il token di percorso, tieni presente quanto segue:

  • Requisito di corrispondenza della destinazione: le coordinate della destinazione trasmesse a setDestinations devono corrispondere a quelle utilizzate durante la generazione di routeToken. Se specifichi una destinazione diversa, si verifica un errore.
  • Itinerari a lato strada: i veicoli commerciali di grandi dimensioni non possono fare facilmente inversioni a U su strade strette. Per assicurarti che il camion si avvicini alla destinazione sul lato corretto della strada, imposta preferSameSideOfRoad = true sui punti di controllo.
  • Soste del veicolo: per guidare il camion in una posizione appropriata per fermarsi o scaricare, imposta vehicleStopover = true sui waypoint.
  • Punti di navigazione: se la tua destinazione ha un ingresso merci o una banchina di carico designati, specificalo utilizzando un token punto di navigazione.

Passaggio 3: gestisci lo stato del percorso e avvia la guida

Valuta GMSRouteStatus restituito nel callback setDestinations. Quando lo stato è .OK (GMSRouteStatusOK), imposta isGuidanceActive = true (guidanceActive = YES) per iniziare la guida vocale passo passo attiva.

Esempio di codice

Passa il token di percorso all'SDK Navigation utilizzando il metodo mapView.navigator setDestinations, specificando gli stessi waypoint di destinazione che hai utilizzato durante la creazione del token di percorso:

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

Display nel veicolo

Puoi visualizzare la sessione di navigazione per veicoli di grandi dimensioni sugli schermi integrati nel cruscotto utilizzando Navigazione per CarPlay.

Passaggi successivi

  • Modificare l'interfaccia utente di navigazione: personalizza i controlli dell'interfaccia utente integrati e gli elementi visivi, come la bussola, il pulsante di ricentramento e la prospettiva della videocamera.
  • Ascolta gli eventi di navigazione: gestisci gli aggiornamenti di navigazione e gli eventi del ciclo di vita, come l'avanzamento del percorso, le modifiche all'orario di arrivo stimato e i ricalcoli del percorso.