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






_______________________________________________
Talk-it mailing list
Talk-it@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-it

Rispondere a