
Questo documento fornisce le best practice per definire SelectedRoutes utilizzando l'API Road Selection per il prodotto Roads Management Insights (RMI). Definire correttamente le SelectedRoutes è il passaggio più importante per assicurarti di ricevere dati sul traffico accurati e affidabili per i tratti di strada che intendi monitorare. Per una panoramica tecnica completa, consulta la documentazione dell'API Road Selection ufficiale.
Principi fondamentali della creazione di SelectedRoute
Quando definisci un percorso selezionato per il monitoraggio, devi rispettare i seguenti principi per garantire l'accuratezza del percorso selezionato e la validità dei dati.
1. Essere specifici per la posizione a lato della strada
Un oggetto SelectedRoute deve rappresentare una singola direzione di viaggio. Per le autostrade o le strade con spartitraffico, devi creare oggetti SelectedRoute separati per ogni direzione (ad es. uno per la direzione nord e uno per la direzione sud). Assicurati che l'origine, la destinazione e gli eventuali punti di passaggio intermedi si trovino sul lato corretto della strada per la direzione che vuoi monitorare. Un'origine o una destinazione posizionata sul lato sbagliato di un'autostrada a carreggiate separate può causare errori nei dati o nei percorsi selezionati.
2. Gestire strade a più livelli e cavalcavia
Su strade complesse con più livelli (ad es. autostrade sovrapposte, cavalcavia, svincoli complessi), una singola coppia di latitudine e longitudine potrebbe essere ambigua e potrebbe comportare lo "snap" dell'itinerario al livello sbagliato. Per evitare questo problema, devi utilizzare waypoint intermedi per indirizzare il percorso sul segmento stradale e sul livello corretti. L'aggiunta di uno o più waypoint garantisce che il percorso segua esattamente le tue intenzioni.
3. Definisci punti di partenza e di arrivo validi
Un SelectedRoute non può iniziare o terminare all'interno di una galleria. I punti di origine e destinazione per il percorso selezionato devono trovarsi in luoghi all'aperto. Le SelectedRoutes che attraversano le gallerie sono supportate, ma il segmento di monitoraggio stesso non può iniziare o terminare all'interno di una galleria.

4. Definisci lunghezze di itinerario appropriate
Una SelectedRoute è flessibile e può essere definita a varie scale:
- Percorsi brevi:un oggetto SelectedRoute può essere piccolo come un singolo isolato, il che è utile per l'analisi granulare nelle aree urbane.
- Percorsi uniformi:puoi definire SelectedRoutes di uguale distanza (ad es. ogni 0,8 km) per report coerenti.
- Percorsi lunghi:un oggetto SelectedRoute può coprire un tratto di strada lungo e continuo. È ideale per monitorare interi corridoi autostradali o strade arteriali principali tra incroci importanti.
Scegli la lunghezza di SelectedRoute più adatta alle tue esigenze di monitoraggio e analisi.
5. Identificare i segmenti stradali con separazione verticale (tunnel, cavalcavia, ponti e così via)
Quando definisci i segmenti stradali utilizzando le coordinate di latitudine e longitudine, è fondamentale tenere conto degli scenari in cui più segmenti stradali occupano lo stesso spazio geografico bidimensionale, ma sono separati verticalmente. Ciò si verifica spesso con strutture come tunnel, cavalcavia, sovrappassi e ponti. Affidarsi semplicemente a latitudine e longitudine senza considerare l'altitudine può portare a imprecisioni nella selezione e nella navigazione di SelectedRoute. Ad esempio, una strada che passa attraverso un tunnel avrà la stessa latitudine e longitudine aerea del segmento stradale sulla superficie sopra di essa. Allo stesso modo, un cavalcavia o un ponte condivideranno le coordinate orizzontali con la strada sottostante. Se non si differenziano questi segmenti impilati verticalmente, il sistema di routing potrebbe indirizzare in modo errato il traffico verso una strada di livello inferiore quando è prevista una strada di livello superiore o viceversa.
In questo esempio a Boston, alle coordinate 42.362347, -71.055935, c'è un enorme tunnel chiamato Big Dig.

Quando posizioniamo un waypoint su una strada, anche una piccola imprecisione nelle sue coordinate geografiche esatte può portare a un calcolo del percorso profondamente diverso. Questa sensibilità al posizionamento dei waypoint è un fattore critico negli algoritmi di selezione di SelectedRoute.
Ad esempio, considera uno scenario in cui un waypoint è inizialmente impostato appena all'interno di una galleria. Se la posizione di questo waypoint viene leggermente modificata in una strada di accesso adiacente, nonostante le coordinate di latitudine e longitudine siano quasi identiche, il motore di calcolo del percorso potrebbe generare un percorso completamente diverso. Questo fenomeno sottolinea l'importanza di un inserimento preciso dei waypoint e la complessità dell'ottimizzazione del percorso, soprattutto in aree con intricate reti stradali e caratteristiche geografiche.


6.Non tutte le strade sono tracciabili
Il percorso selezionato potrebbe non essere sempre tracciabile
- Al di fuori della "Giurisdizione" registrata
- Bassa "Utilità stradale"
- Ciò può comportare una variazione della tracciabilità nel tempo
La convalida viene eseguita in modo asincrono ⇒ verifica che tutte le SelectedRoutes registrate abbiano superato questo passaggio
Best practice per la definizione di SelectedRoute
Segui queste best practice per migliorare la qualità delle definizioni di SelectedRoute e dei dati risultanti.
Utilizzare le tappe intermedie (punti intermedi)
Anche per SelectedRoutes brevi e apparentemente semplici, è consigliabile includere almeno un waypoint intermedio.
- Why?
- Routing delle guide:assicura che l'itinerario selezionato segua il percorso specifico che vuoi, soprattutto se esistono strade alternative tra l'origine e la destinazione.
- Consente i loop:necessario per rappresentare correttamente i loop o i percorsi selezionati "andata e ritorno" in cui l'origine e la destinazione sono le stesse.
- Migliora il rilevamento delle deviazioni: più waypoint fornisci, più facile è rilevare e segnalare i punti dati in cui il traffico potrebbe essersi discostato dalla SelectedRoute che avevi previsto.
- Come?
- Puoi trovare a livello di programmazione un punto medio lungo un SelectedRoute noto utilizzando le funzioni geospaziali.
- Esempio (BigQuery): utilizza la funzione ST_LINEINTERPOLATEPOINT.
- Esempio (JavaScript): utilizza la funzione along della libreria Turf.js.
Corrispondenza delle route da sistemi esterni
Se importi dati di itinerari da un GIS esterno o da un sistema basato su una rete stradale diversa, le coordinate potrebbero non essere perfettamente allineate alla rete stradale di Google. Ciò può comportare "itinerari non previsti".
- Come risolvere il problema:
- Controlla il lato della strada:innanzitutto, verifica che l'origine e il punto di partenza si trovino sul lato corretto della strada.
- Snap to Roads:utilizza il metodo matchPath dell'API Roads v2 per allineare i dati del percorso esistenti alla rete stradale di Google.
- Regolazione e ridisegno manuali:regola manualmente i waypoint in uno strumento in modo che corrispondano alle strade di Google. Poi, utilizza il metodo computeRoute dell'API Routes (con il traffico impostato su"unaware") per generare una polilinea pulita che segue la rete di Google.
- Traccia: come ultima risorsa, sovrapponi i tuoi dati alla rete stradale di Google in uno strumento GIS e traccia manualmente il percorso per creare nuovi waypoint.
Pulizia e convalida dei dati
I dati che ricevi in BigQuery riflettono le condizioni del mondo reale. Devi applicare passaggi di pulizia per filtrare i dati che non rappresentano la SelectedRoute principale.
Gestire le deviazioni
L'API Routes, che supporta RMI, cercherà sempre di restituire un percorso valido. Se
la SelectedRoute che intendi utilizzare è bloccata o molto trafficata, l'API potrebbe restituire un percorso
che fa una deviazione e si discosta dai waypoint intermedi definiti. Ad esempio, se SelectedRoute specifica un percorso da A -> B -> C, una deviazione potrebbe comportare un percorso restituito che va direttamente da A -> C.
Ad esempio, se tracciamo questo percorso: https://www.google.com/maps/dir/OR-213,+Oregon+City,+OR+97045/Caufield,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/643+OR-213,+Oregon+City,+OR+97045/OR-213,+Oregon+City,+OR+97045/Oregon+City,+OR+97045/Washington+Dr,+Oregon+City,+OR+97045/@45.3754391,-122.5822044,15.2z/data=!4m50!4m49!1m5!1m1!1s0x549570b9f466b4a1:0x6390dd57f70701fd!2m2!1d-122.5787!2d45.3231933!1m5!1m1!1s0x549570ca19ded1b3:0xd28eaf8da19c4509!2m2!1d-122.5756369!2d45.3303343!1m5!1m1!1s0x549576c6b4992137:0xb6ed1e1848a8e2a5!2m2!1d-122.5841289!2d45.3640919!1m5!1m1!1s0x549576c0c48ee6f1:0x86497e036c5dd444!2m2!1d-122.5850086!2d45.3662193!1m5!1m1!1s0x549576bfbca6fa93:0xf6b573219354d3f!2m2!1d-122.5851045!2d45.3696112!1m5!1m1!1s0x549576be3782e5db:0xd0ea93d91e8a0792!2m2!1d-122.5857424!2d45.371047!1m5!1m1!1s0x5495769635216053:0x150f4a4f811b98d6!2m2!1d-122.5870571!2d45.3752342!1m5!1m1!1s0x54957697b928b269:0x2b114f280e6ab0f0!2m2!1d-122.5875209!2d45.3760557!3e0?entry=ttu&g_ep=EgoyMDI1MTAxMy4wIKXMDSoASAFQAw%3D%3D Possiamo notare una deviazione enorme, probabilmente dovuta a condizioni stradali, ma se non viene corretta con attenzione, può portare a una raccolta di dati errata.

Per RMI, questi record deviati sono meno utili perché non rappresentano la SelectedRoute specifica che stai monitorando.
- Azione:non eliminare semplicemente queste righe. Devi segnalarli per l'analisi per capire quando e perché si verificano le deviazioni.
- Come segnalare le deviazioni:esistono due metodi principali per
identificare le deviazioni a livello di programmazione:
- Mancata corrispondenza del punto di controllo:controlla se la geometria del percorso restituita non includeva tutti i punti di controllo intermedi specificati.
- Discrepanza di distanza:controlla se l'
distancedell'itinerario restituito è significativamente diverso dalla distanza prevista del tuoSelectedRoute. Una soglia comune è una differenza del 5%.
- Esempio BigQuery per segnalare le deviazioni: puoi unire la tabella
SelectedRoutes(che contiene la distanza prevista) alla tabellaRouteResponsese utilizzare un'istruzioneCASEper creare un flag.
Gestione delle geometrie "MultiLineString"
Il tipo di dati GEOGRAPHY di BigQuery ha una limitazione: non può memorizzare un singolo
LineString che si sovrappone a se stesso (ad es. un'inversione a U curva, un percorso che torna
indietro su se stesso a causa di una deviazione).
- Sintomo: quando si verifica questo problema, BigQuery salva la geometria come
MultiLineStringe alcune parti del percorso potrebbero mancare. - Azione:devi filtrare questi record dall'analisi principale.
- Filtro BigQuery: utilizza
WHERE ST_GEOMETRYTYPE(route_geometry) != "ST_MultiLineString"
- Filtro BigQuery: utilizza
- Soluzione:
- Se la sovrapposizione è causata da una deviazione, la registrazione può essere filtrata come descritto sopra.
- Se la SelectedRoute prevista contiene una sovrapposizione, devi ridefinirla
dividendo la SelectedRoute in due o più oggetti
SelectedRouteseparati.
Conversione del fuso orario
Tutti i dati timestamp nell'esportazione BigQuery di RMI sono forniti in Coordinated Universal Time (UTC). Per la generazione di report o l'analisi in un fuso orario locale, devi convertire questi timestamp.
- Esempio di BigQuery per la conversione dell'ora:utilizza le funzioni
DATETIMEeTIMESTAMPper convertire un timestamp UTC in un fuso orario locale specifico, ad esempio "America/Los_Angeles".
Conclusione
Seguendo le best practice descritte in questa guida, puoi assicurarti che le definizioni di SelectedRoute siano accurate e solide, il che porta a dati sul traffico affidabili e utilizzabili dal prodotto Roads Management Insights. Definire correttamente i percorsi, gestire geometrie stradali complesse e convalidare i dati risultanti sono passaggi fondamentali per sfruttare tutto il potenziale di RMI per le tue esigenze di gestione stradale.
Autori
Sarthak Gangopadhyay: Google Maps Devrel Naoya Moritani: Google Maps Devrel