[Talk-it] Come taggare le strade a doppio senso di marcia con uno dei due sensi riservati ai mezzi pubblici?

Omar Bettin omar a omarbettin.com
Ven 8 Maggio 2015 09:05:26 UTC


Ciao Sig,

> Come no, la pagina dice:
> 
> For more complex direction dependent restrictions, the postfixes :backward and :forward can be used on the keys, for example:
> bicycle <http://wiki.openstreetmap.org/wiki/Key:bicycle>:backward <http://wiki.openstreetmap.org/wiki/Key:backward>=no (when a road has a oneway cycleway next to it that must be used, and a cyclelane in the other direction)
> bicycle <http://wiki.openstreetmap.org/wiki/Key:bicycle>:backward <http://wiki.openstreetmap.org/wiki/Key:backward>=yes (when cyclists are allowed to travel in both directions on a oneway street (but no lane is present))
> Immagino che un buon algoritmo debba supportare tutti gli schemi previsti da OSM. Ed è il motivo per cui non invidio chi sviluppa software basato su dati OSM :)
> 
> Su Milano abbiamo abbondante applicazione di entrambi gli schemi, quindi propongo di testare i diversi motori di routing per vedere come recepiscono i tags.
> 

Un buon algoritmo supporta tutti gli schemi previsti.
Io intendevo il tag esplicitamente dichiarato come access:backward=...
Questa forma mi sembra non sia prevista.


Ci sono diversi algoritmi di routing, i più utilizzati sono:
Dijkstra
A*
Contraction Hierarchies

Dijkstra
Pro
Ottima versatilità, Preciso.
Contro
Lentissimo, Richiede Molte risorse.

A*
Pro
Buona versatilità, Più veloce di Dijkstra
Contro
Impreciso se reso veloce

Contraction Hierarchies
Pro
Veloce, Preciso
Contro
Bassa Versatilità.

OSRM utilizza Contraction Hierarchies, questo algoritmo in particolare deve stabilire in fase di costruzione dei dati di routing se un edge (un tratto tra due nodi, da non confondere con una way) è bidirezionale oppure no, accessibile oppure no, ecc..
Questa analisi deve essere fatta in base al tipo di mezzo per cui si intende preparare i dati.
Automobile,
Bici,
Piedi,
Mezzi Pubblici,
Mezzi Pesanti,
Ecc..

Quindi con dei tag tipo:
access:backward = no 
psv:backward = yes

access:backward=no: (o non viene riconosciuto, ho viene trattato come oneway=yes).
psv:backward=yes:(se la preparazione dei dati di routing non è esplicitamente prevista per mezzi pubblici, viene scartato).



> Poi c'è il problema delle limitazioni di accesso condizionali: motor_vehicle:conditional = no @ (22.00-06.00). Chissà come li vedono i navigatori. Bisognerebbe dare una sbirciatina al codice


Anche questo tipo di condizione è critica per Contraction Hierarchies, perché i dati di routing sono pre-elaborati ed i tag non sono utilizzati in tempo reale.
Questo tipo di condizione (salvo appesantimenti alla base di dati di routing) viene trattata come access=no;


Saluti,
Omar






-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.openstreetmap.org/pipermail/talk-it/attachments/20150508/1873338b/attachment-0001.html>


Maggiori informazioni sulla lista Talk-it