IT:Routing
Il Routing
I servizi di Routing aiutano le persone nel muoversi da un posto ad un altro. I dati contenuti nel database di OpenStreetMap includono informazioni utili per diversi tipi di routing: macchine, a piedi, biclicetta, mountain bike e a cavallo. Esistono molti servizio di routing, sia offline che online che utilizzano i dati di OpenStreetMap. Esistono anche software per creare nuovi applicazioni e di continuo nuovi dati sono aggiunti al database delle mappe per permettere un uso migliore. Sono inoltre disponibili varie mailing-list per avere più informazioni.
Mailing list
Queste sono le più rilevanti sull'argomento routing:
- osm-routing 'Discussioni riguardanti il routing con dati vettoriali, soprattutto sui dati OSM'
- osm-accessibility 'Riguarda la discussione sull'uso di specifica tag di interesse per i disabili. Con questi dati verranno create mappe speciali.'
Software
Software di Routing
Panoramica
Java
- L'applicazione Traveling Salesman contiene un navigatore di mappe osm e una libreria base, ma non una interfaccia grafica. Tutte le parti più importanti possono essere cambiate con plugin.
C/C++
C#
- IMORTIS(Intermodal Transport Routing Informations-System) utilizza un approccio che tende all'ottimizzazione della navigazione di differenti veicoli utilizzando un algoritmo A*.
Libraries/Development-Tools
- DGLib - ([1]) La libreria DGLib (Directed Graph Library) fornisce funzionalità utili nell'analisi di reti vettoriali. E' usata da GRASS GIS,vector network tools (shortes path,shortest path, traveling salesman, isodistances, Steiner trees; anche Addons) ma è utilizzabile anche come libreria per un navigatore stand-alone.
- Graphserver ([2]) è un servizio web che fornisce l'itinerario più corto su mappe grandi. Graphserver è attualmente fornito con script per caricare mappe TIGER/line, e dati sui trasposrti pubblici nel formato 'Googel Transit Feed Specification', ma comunque Graphserver non è limitato a questi formati.
- OSMnavigation and LibOSM Libreria Java per scrivere o includere funzioni di navigazione o pianificazione itinerario.
- pgRouting - ([3]) Motore di navigazione basato su PostGIS, con PostGRE SQL API. Include lo strumento 'osm2pgrouting' per importare dati OSM all'interno di una struttura grafica. Lavora direttamente sul database SQL.
- spatialite - ([4]) L'estensione SpatiaLite attiva [[5]] (un popolare, semplice, robusto, leggero e facile da usare DBMS) nel supportare anche dati spaziali. La funzione di navigazione è tra quelle supportare. Questo HOWTO - ([6]) contiene informazioni sul suo uso con i dati OSM.
Altro software
Java
- LibOSM implementa le basi per lavorare coi dati OSM e funziona anche da plugin per Osmosis aggiungendo il supporto per più formati di dati e consentendo modifiche avanzate.
- OSMNavigation Implementa algoritmi di routing, navigazione, istruzioni di guida, rendering del percorso ecc. Basato su LibOSM.
- Osmosis Ha un codice ottimizzato per lo streaming del file completo Planet.osm attraverso diversi filtri. E' ben ottimizzato per una grande quantità di dati, e per questo poco utilizzabile per la gestione di piccole parti della mappa.
- JOSM è un editor con molte utili funzioni, ma il suo formato di dati lo costringe a caricare tutta la mappa visualizzata in memoria.
Protocolli
- Il protocollo di default, utilizzato dal server principale è API v0.6. Contiene tutti i dati su OSM.
- Esiste anche il compresso, ma limitato OSM Mobile Binary Protocol.
Strumenti
- osm4routing parser per ottenere una struttura di dati semplice da usare con ogni applicazione di routing.
Rendering dei percorsi
Java
- JOSM Contiene il codice per lavorare con le coordinate e renderizzare un grafico a linee.
- OSMnavigation and LibOSM contiene sia una visualizzatore di mappe in locale, che uno con possibilità di scaricate i tiles.
PHP
Il sistema di rendering FreeMap, disponibili dall'archivio Subversion, crea immagini PNG da dati OSM.
Prima di tutto è richiesta una certa familiarità e conoscenza con le Caratteristiche della mappa usate. In secondo luogo è consigliabile consultare OSM_tags_for_routing per prendere confidenza con i diversi tag utili alla navigazione.
Qualità dei dati
E' necessario assicurarsi che le diverse vie siano collegate tra loro. Usando Potlatch e selezionando una via verranno evidenziati tutti i nodi appartenenti alla stessa. Se un nodo è più grande e quadrato significa che questo è connesso ad un'altra via. Per migliorare la qualità dei dati OSM si possono usare i resoconti generati da WayCheck.
Dati sulla velocità
Controllare prima OSM_tags_for_routing.
Average speed
- Speedcollector - trivial service to collect real-world speeds and give estimations.
- Average speed per way - thoughts about deriving average speed values for ways from stored tracks
- Global Statistical Speed Matrix - another idea how to extract valuable speed information from NMEA/GPX tracks, how to store them efficently in a database to make collected data useful for routing purposes
Velocità Massima
Maximum permitted speed per way - Raccolta delle velocità massime consentite nei diversi paesi e per tipologia di veicolo.
Tipi di strade
L'ordine dei valori per la chiave highway in relazione alla velocità permessa è:
- motorway
- motorway_Link
- trunk
- trunk_Link
- primary
- primary_Link
- secondary
- tertiary
- residental
- service
- track
Corsie
La chiave number of lanes riferita ad highway è direttamente taggata in OSM e influisce sul calcolo del percorso sulla velocità media (percorso più veloce) e sul consumo di carburante (percorso più efficiente).
Sinuosità
Alcuni studi fatti sull'accessibilità di un percorso [7] hanno sviluppato modelli che correlano la velocità del viaggio con la quantità di tratti rettilinei o curvi dello stesso (sinuosità). Utilizzando la relazione sull'indice di sinuosità sinuosity index (lunghezza reale/distanza più breve), è possibile ottenere per ogni sezione del percorso la velocità media, basandosi sulla tipologia e sulla sinuosità del percorso. Il modello è più preciso se nel disegnare le curve non si usano ampi archi ma molti piccoli segmenti. Alcuni paesi utilizzano questi valori per dividere le sezioni delle strade e calcolare i limiti di velocità (questa pratica non è comunque comune).
D'altro canto, l'approccio geografico, come quello usato in Syntax of the Space, presuppone che, in ambienti urbani, i pedoni e i guidatori sono influenzati nello scegliere il loro percorso dalla visibilità dello stesso. In questo modo, un pedone che , ad esempio, voglia muoversi spostandosi dal punto A al punto B sceglierà preferenzialmente una strada larga e rettilinea, piazze o viali con un'ampia visuale, evitando vicoli stretti, anche se il percorso risultasse più breve.
Inclinazione
Come come le curve, la chiave incline può diminuire la velocità del veicolo.
Condizioni delle strade
Altri fattori, più difficili da misurare, che possono influire sulla velocità media sono larghezza della strada, condizioni della superficie, Livello di servizio (LOS), raggio minino delle curve, banked turns, visibilità in curva, ecc.
In OpenStreetMap questo modello può essere utile in percorsi dove non ci siano indicazioni sulla velocità (ad esempio highway=unclassified).
Vedi anche
- OSM tags for routing - Quali dati presenti in OpenStreetMap possono essere usati per la navigazione?
- Rollstuhlfahrer-Routing - Progetto tedesco per la navigazione di sedie a rotelle.
- Routing problems - Ci sono problemi che non possono essere risolti con un routing a basso costo? Ci sono suggerimenti per i *Routing profiles - Quale categoria di persone ha bisogno di generare percorsi, quali sono i loro bisogni? Come si può scegliere il miglior percorso per un ciclista con pneumatici lisci e nessuna illuminazione notturna?
- Sample driving instructions
- TIGER fixup - Correzzioni del routing negli Stati Uniti. Inizia delle strade interstatali: TIGER fixup/250 cities
- Train routing - Come si può creare una navigazione per il trasposto pubblico, e altri servizi programmati?
- LoroDux - Navigazione su dispositivi mobili per ciechi.