[OSM-talk-fr] routage surfacique
Phyks
phyks at phyks.me
Mer 19 Juin 12:34:24 UTC 2019
Bonjour,
> casser en disant "yaka faire du routage surfacique",
> c'est méconnaître ce que cela implique techniquement :
> il y a un gros travail de prétraitement à faire.
> je ne retrouve plus hélas l'article qui était publiée sur osmweekly
> mais la moindre place avec qlq rues est transformée en un nuage
> de way qui connectent tous les paires de points de la surface.
> en passant, cela veux dire aussi qu'une place surfacique
> avec 8 nœuds consomme 9x l'espace disque et mémoire
> comparé à sa version linéaire et ce n'est pas en un claquement
> de doigt qu'on augmente la puissance d'un serveur gratuit.
>
> je pense que les outils continueront de s'améliorer simplement
> à la demande de leur utilisateur, en fonction des ressources dispo.
Dans la plupart des cas, le routage surfacique n'est pas un problème
quand même. Je mets volontairement de côté une place aussi complexe que
https://www.openstreetmap.org/relation/8365033 (même le rendu a du mal
au passage…) pour se concentrer sur des espaces sans trous (tels que les
espaces dans l'erreur Osmose initiale
https://osmose.openstreetmap.fr/fr/map/#item=1270&zoom=18&lat=47.497894&lon=-0.580999&level=1%2C2%2C3&tags=&fixable=).
La plupart des moteurs de routage ne vont pas gérer le routage
surfacique à travers la place (qui est un problème compliqué). En
revanche, tous vont pouvoir traiter la place comme un way fermé (le
contour) et tous savent a priori emprunter des portions de way. Du coup,
le routage ne sera pas "joli" (on ne va pas traverser la place comme on
le voudrait, simplement contourner en suivant la bordure), mais le
routage restera néanmoins fonctionnel.
Dans un cas simple comme ceci, à mon avis, il n'y a aucune raison de
tracer des continuités des chemins à travers les places, si ce n'est
alourdir la base avec des ways inutiles (et qui n'existent pas sur le
terrain). La description en termes d'air a une réelle plus value
(notamment pour le rendu, mais pas que), et reste parfaitement
utilisable, à condition que les aires portent bien les attributs
corrects (highway et droits d'accès).
Sur un cas similaire à l'exemple initial d'Osmose :
* BRouter suit le contour,
http://brouter.de/brouter-web/#map=19/45.77393/3.08337/standard&lonlats=3.083773,45.77412;3.083596,45.773869
* Géovélo aussi,
https://www.geovelo.fr/clermont/itinerary/search?profile=MEDIAN&bikeType=TRADITIONAL&wayPoints=45.774108,3.08372%7C45.7739,3.0836
* GraphHopper et OSRM aussi,
https://www.openstreetmap.org/directions?engine=graphhopper_foot&route=45.77411%2C3.08376%3B45.77387%2C3.08360
Mon avis serait donc que sur des places simples (sans trou), il suffit
de connecter le polygone aux chemins voisins et tout tracé de chemin en
travers du polygone relève plutôt du "tag to router", en créant des
chemins qui amélioreront le rendu du routage, mais en aucun cas sa
justesse.
D'ailleurs, malgré l'erreur Osmose, le routage se fait très bien
http://brouter.de/brouter-web/#map=19/47.49783/-0.58158/standard&lonlats=-0.581248,47.497738;-0.581433,47.498012.
Ma remarque ne tient plus évidemment lorsqu'on considère des surfaces
avec des trous (multipolygone) où le routage est épouvantable et
catastrophique s'il n'y a pas de chemins intérieurs "fictifs", comme le
montre
http://brouter.de/brouter-web/#map=17/48.84022/2.32019/standard&lonlats=2.319813,48.841791;2.321146,48.841137&profile=hiking-beta
par exemple (BRouter ne gère pas le routage surfacique). Ce point est
beaucoup plus sujet à débat à mon avis et des chemins "fictifs"
pourraient être justifiés, même si certains ont des avis assez tranchés
sur la question https://www.openstreetmap.org/note/1654211.
--
Phyks
Plus d'informations sur la liste de diffusion Talk-fr