<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Ciao Sig,<div class=""><br class=""><div><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">Come no, la pagina dice:</div><div class=""><br class=""></div><div style="margin: 0.5em 0px; line-height: 14.9333333969116px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px;" class="">For more complex direction dependent restrictions, the postfixes <code style="font-family: monospace, Courier; border: 1px solid rgb(221, 221, 221); border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; padding: 1px 4px; background-color: rgb(249, 249, 249);" class="">:backward</code> and <code style="font-family: monospace, Courier; border: 1px solid rgb(221, 221, 221); border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; padding: 1px 4px; background-color: rgb(249, 249, 249);" class="">:forward</code> can be used on the keys, for example:</div><ul style="line-height: 1.5em; margin: 0.3em 0px 0px 1.6em; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px;" class=""><li style="margin-bottom: 0.1em;" class=""><tt dir="ltr" style="font-family: monospace, Courier; font-size: 16.1000003814697px; white-space: pre; background-color: rgb(221, 221, 238);" class=""><a href="http://wiki.openstreetmap.org/wiki/Key:bicycle" title="Key:bicycle" style="text-decoration: none; color: rgb(11, 0, 128); background-image: none; background-position: initial initial; background-repeat: initial initial;" class="">bicycle</a>:<a href="http://wiki.openstreetmap.org/wiki/Key:backward" title="Key:backward" class="" style="text-decoration: none; color: rgb(11, 0, 128); background-image: none; background-position: initial initial; background-repeat: initial initial;">backward</a>=no</tt> (when a road has a oneway cycleway next to it that must be used, and a cyclelane in the other direction)</li><li style="margin-bottom: 0.1em;" class=""><tt dir="ltr" style="font-family: monospace, Courier; font-size: 16.1000003814697px; white-space: pre; background-color: rgb(221, 221, 238);" class=""><a href="http://wiki.openstreetmap.org/wiki/Key:bicycle" title="Key:bicycle" style="text-decoration: none; color: rgb(11, 0, 128); background-image: none; background-position: initial initial; background-repeat: initial initial;" class="">bicycle</a>:<a href="http://wiki.openstreetmap.org/wiki/Key:backward" title="Key:backward" class="" style="text-decoration: none; color: rgb(11, 0, 128); background-image: none; background-position: initial initial; background-repeat: initial initial;">backward</a>=yes</tt> (when cyclists are allowed to travel in both directions on a oneway street (but no lane is present))</li></ul></div></div></div></div></blockquote><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">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 :)</div><div class=""><br class=""></div><div class="">Su Milano abbiamo abbondante applicazione di entrambi gli schemi, quindi propongo di testare i diversi motori di routing per vedere come recepiscono i tags.</div><div class=""><br class=""></div></div></div></div></div></blockquote></div><br class=""></div><div class="">Un buon algoritmo supporta tutti gli schemi previsti.</div><div class=""><div>Io intendevo il tag esplicitamente dichiarato come <span style="font-size: 16px;" class="">access:backward=...</span></div><div>Questa forma mi sembra non sia prevista.</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Ci sono diversi algoritmi di routing, i più utilizzati sono:</div><div class="">Dijkstra</div><div class="">A*</div><div class="">Contraction Hierarchies</div><div class=""><br class=""></div><div class=""><b class="">Dijkstra</b></div><div class="">Pro</div><div class="">Ottima versatilità, Preciso.</div><div class="">Contro</div><div class="">Lentissimo, Richiede Molte risorse.</div><div class=""><br class=""></div><div class=""><b class="">A*</b></div><div class="">Pro</div><div class="">Buona versatilità, Più veloce di Dijkstra</div><div class="">Contro</div><div class="">Impreciso se reso veloce</div><div class=""><br class=""></div><div class=""><div class=""><b class="">Contraction Hierarchies</b></div></div><div class="">Pro</div><div class="">Veloce, Preciso</div><div class="">Contro</div><div class="">Bassa Versatilità.</div><div class=""><br class=""></div><div class="">OSRM utilizza <b class="">Contraction Hierarchies</b>, 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..</div><div class="">Questa analisi deve essere fatta in <u class="">base al tipo di mezzo</u> per cui si intende preparare i dati.</div><div class="">Automobile,</div><div class="">Bici,</div><div class="">Piedi,</div><div class="">Mezzi Pubblici,</div><div class="">Mezzi Pesanti,</div><div class="">Ecc..</div><div class=""><br class=""></div><div class="">Quindi con dei tag tipo:</div><div class=""><div style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);" class="">access:backward = no </div><div style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);" class="">psv:backward = yes</div></div><div style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin-top: 0px; margin-bottom: 0px; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);" class=""><div style="font-family: Helvetica; font-size: 12px;" class=""><b class="">access:backward=no</b>: (o non viene riconosciuto, ho viene trattato come <b class="">oneway=yes</b>).</div></div><div class=""><b class="">psv:backward=yes</b>:(se la preparazione dei dati di routing <u class="">non è esplicitamente prevista per mezzi pubblici</u>, viene scartato).</div><div class=""><b class=""><br class=""></b></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">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</div></div></div></div></blockquote></div><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div></div></div></div></div><div class="">Anche questo tipo di condizione è critica per <b class="">Contraction Hierarchies, </b>perché i dati di routing <u class="">sono pre-elaborati</u> ed i tag non sono utilizzati in tempo reale.</div><div class="">Questo tipo di condizione (salvo appesantimenti alla base di dati di routing) viene trattata come <b class="">access=no</b>;</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Saluti,</div><div class="">Omar</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>