Fornire la navigazione passo passo 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 in cabina per i conducenti di camion o altri veicoli di grandi dimensioni.

Contenuto della guida:questa guida spiega come utilizzare un percorso specifico per i camion, generato dall'API Routes o dall'API Route Optimization, e come utilizzarlo per attivare una sessione di navigazione passo passo con l'SDK Navigation.

Obiettivi didattici

Imparerai a:

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

Prerequisiti

Prima di iniziare, devi soddisfare i seguenti requisiti.

Configurazione del progetto

Il tuo progetto Google Cloud deve essere sottoposto a provisioning per il routing per veicoli di grandi dimensioni. Se utilizzi progetti separati per l'API Routes e l'SDK Navigation, entrambi devono essere provisionati di conseguenza.

Generare un token di route

Devi prima generare un percorso seguendo le istruzioni della guida Generare percorsi per camion e orari di arrivo stimati. L'output di questo processo, un routeToken, è necessario per completare i passaggi di questa guida.

Requisiti minimi

La tua app deve utilizzare la versione minima richiesta dell'SDK Navigation:

  • Android: 5.2.0 o versioni successive
  • iOS: 5.4.0 o versioni successive

Inoltre, si applicano tutti i requisiti per l'utilizzo dell'SDK Navigation:

Limitazioni

Prima di iniziare, devi essere a conoscenza delle seguenti limitazioni e requisiti.

  • Disponibilità geografica: il calcolo del percorso per veicoli di grandi dimensioni è disponibile solo nei 48 stati contigui degli Stati Uniti.
  • Il routing per veicoli di grandi dimensioni è un'offerta in fase di anteprima. Gli autisti non devono fare affidamento esclusivamente sugli itinerari restituiti da questa API per essere sicuri o legali. Non è garantito che gli itinerari siano adatti al veicolo e seguirli potrebbe esporre i conducenti a pericoli come ponti bassi o strade in cui sono vietati i veicoli di grandi dimensioni.
  • Itinerari con il massimo sforzo. In alcuni casi, l'API non riesce a trovare un itinerario che rispetti pienamente le restrizioni di viaggio. Restituisce invece un percorso "best effort" che potrebbe comunque attraversare aree con limitazioni. La risposta dell'API Routes contrassegna chiaramente questi percorsi nel campo routeRestrictionsPartiallyIgnored. In questi casi, pianifica attentamente il percorso, idealmente utilizzando altre origini dati. Non utilizzare un percorso segnalato come unica fonte attendibile per la pianificazione o la navigazione.
  • Funzionalità non supportate: stiamo lavorando per aggiungere altre funzionalità a questa offerta, ma il calcolo del percorso per veicoli di grandi dimensioni non supporta le seguenti funzionalità:
    • Prezzi dei pedaggi per i camion
    • Limiti di velocità
    • Itinerario per materiali pericolosi radioattivi
  • Limiti di utilizzo:tutte le richieste sono soggette ai limiti standard di query al secondo (QPS).

Visualizzare l'interfaccia utente specifica per i camion

L'SDK Navigation mostra automaticamente avvisi visivi, chiamati callout del percorso, sulla mappa per avvisare i conducenti delle imminenti limitazioni per i camion. I callout vengono visualizzati per le limitazioni che fanno parte dell'itinerario pianificato, ma non su altre strade vicine.

L'SDK include callout per le seguenti limitazioni:

Limitazione Icona e testo del callout Condizioni di visualizzazione
Altezza Un'icona gialla di limitazione dell'altezza
Giallo = avviso, il tuo veicolo è vicino all'altezza massima consentita
Un'icona rossa di limitazione dell'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 con un avviso di limitazione dell'altezza
Viene visualizzata una didascalia rossa se il percorso non è conforme e viola un limite di altezza.
Una mappa con una violazione del limite di altezza
Peso Un'icona di limitazione di peso Viene visualizzato un fumetto rosso quando il peso del veicolo supera il limite della strada.
Una mappa con un'icona di limitazione di peso
Camion vietati Icona di divieto per i camion Viene visualizzato un callout rosso quando viaggi su un segmento stradale con una limitazione per i camion.
Una mappa con l'icona di divieto di transito 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 con un'icona di merci pericolose

Flusso di lavoro del token di route

Un routeToken è uno snapshot criptato e sicuro di un percorso generato dall'API Routes. Contiene tutti i dettagli del percorso, incluso il profilo del veicolo utilizzato per crearlo. L'utilizzo di un token garantisce che la sessione di navigazione corrisponda al percorso che hai pianificato nel backend.

Tieni presente che una volta che l'autista inizia la navigazione, il percorso presentato dall'SDK di navigazione può cambiare a seconda del traffico e delle condizioni stradali. In alcuni casi, potrebbe divergere dal percorso specificato dal token di percorso.

In questi casi, così come nel caso in cui l'autista si discosti dall'itinerario pianificato, l'utilizzo del token di percorso garantisce che gli itinerari ricalcolati rispettino gli attributi del veicolo configurati nella richiesta API originale dell'API Routes.

Il flusso di lavoro segue questi passaggi:

  1. Il backend richiede un itinerario per camion dall'API Routes.
  2. L'API Routes restituisce un routeToken.
  3. Il backend invia questo token alla tua applicazione mobile.
  4. L'app mobile passa routeToken all'SDK Navigation per iniziare il viaggio.
  5. L'SDK Navigation gestisce tutti gli aspetti dell'esperienza di navigazione turn-by-turn, incluso il ricalcolo del percorso se il conducente si discosta dal percorso mantenendo le limitazioni originali del veicolo.

Implementazione: avviare un viaggio specifico per camion

Per avviare una sessione di navigazione con l'itinerario per camion, devi passare il token dell'itinerario al navigatore.

Passaggio 1: ottieni il token di route

La tua applicazione riceve la stringa routeToken dal server di backend.

Il seguente codice è un token di esempio:

CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g

Passaggio 2: passa il token al navigatore

Fornisci routeToken a Navigator quando imposti la destinazione del viaggio. L'SDK Navigation utilizza quindi questo token per tutti i calcoli del percorso per il viaggio.

Tieni presente che l'SDK Navigation ha una configurazione TravelMode, che deve essere impostata su TravelMode.DRIVING. Questa configurazione è separata dalla configurazione travelMode nell'API Routes, che deve essere impostata su TRUCK. La configurazione dell'API Routes travelMode è codificata in routeToken e indica all'SDK Navigation di mostrare l'esperienza e l'itinerario specifici per i camion.

Android

Utilizza CustomRoutesOptions.builder() per impostare il token e poi passalo a navigator.setDestinations().

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

val customRoutesOptions = CustomRoutesOptions.builder()
    .setRouteToken(routeToken)
    .setTravelMode(TravelMode.DRIVING)
    .build()

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

iOS

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: {...})

Passaggi successivi