Par défaut tous les chemins fermés (ways ou collections de ways
membres d'une même relation) sont interprétés comme des surfaces, sauf
si le type d'objet désigne une route/rue/sentier (highway=*) ou une
ligne de chemin de fer (railway=*), ou une ligne de transport en
général (type=route, que ce soit pour des bus, des taxis, des
sentiers), ou les lignes électriques.

Ce sont ces lignes de transports qui seules nécessitent area=yes si on
veut que ça désigne toute la surface délimitée par ce chemin (le plus
souvent on le trouve pour les places et secteurs piétonniers), et pas
seulement une zone tampon ("buffer") située de part et d'autre du
chemin (la largeur de ce chemin est souvent implicitement estimée mais
ignorée dans le rendu qui peut tracer la ligne avec une épaisseur plus
grande comparaitivement à l'échelle; l'estimation de largeur de la
zone tampon est dépendante du moteur de rendu, mais on peut l'etimer à
3 mètres de part et d'autre, ou tenir compte d'autres attributs comme
l'indication du nombre de voies de circulation, ou utiliser
l'indication de la largeur avec width=* qui est rarement employé car
souvent pas homogène sur la longueur du chemin dont on n'a tracé
qu'une ligne centrale souvent suffisante pour la plupart des rendus
aux échelles courantes).

En pratique malgré tout, même les rues ou routes ont une largeur qui
devrait pouvoir être cartographiée pour préciser la disposition des
voies, des trottoirs, bandes cyclables, voies bus, zones de
stationnement, ilots directionnels et positionner divers équipements
plus précisément. Et de fait presque tout devrait devenir des surfaces
à terme. Mais le travail de cartographie est plus long et plus
compliqué pour ces objets qui sont nettement plus longs que leur
largeur. On peut regretter toutefois que les moteurs de routage (pour
calculer un itinéraire) se débrouillent très mal avec les surfaces
(ils ne savent pas comment interconnecter correctement une surface
avec un chemin) et nécessitent de tracer malgré tout au moins une
ligne centrale en plus de cette surface et il n'y a pas encore de
modèle stable pour avoir les deux.

En principe on devrait pouvoir déduire automatiquement la géométrie de
cette ligne centrale virtuelle à partir de la géométrie de la surface
délimitée mais le calcul géométrique est un peu compliqué et trop
lourd pour nombre de petits appareils portables ou mobiles. La
solution serait de pouvoir préparer les données selon le dispositif
afin de leur faire satisfaire certaines contraintes, mais à l'heure
actuelle cela ne semble pas encore marcher avec les outils d'exports
et préparation de données. Donc en fin de compte on utilise des routes
tracées avec un seul trait, le moteur de rendu utilise une largeur un
peu arbitraire pour le rendu de l'épaisseur du tracé afin de ne pas
couvrir une surface trop grande ni trop petite relative à l'échelle de
rendu.

Mais si la capacité de calcul des appareils de navigation s'améliore
(par exemple avec un rendu 3D montrant les bâtiments autour, le
relief, et divers équipement ou même des façades de commerce et les
trottoirs et toutes les voies), la donnée de la seule ligne centrale
virtuelle pourra devenir insuffisante pour faire de la navigation avec
une indication précise des voies de circulation qui ne recouvrent pas
ce qui est à afficher autour.  Le modèle actuel est plutpot adapté à
un rendu sous forme de plan en projection vu de dessus et ne montrant
au mieux une précision décamétrique. Pour la précision métrique ou
décimétrique la modélisation (ou l'approximation par estimation des
largeurs de "buffer" prenant en compte d'autres attributs) des routes
par surfaces d'occupation pourrait devenir nécessaire.

On n'en est pas encore là mais le besoin se fait de plus en plus
sentir dans les zones urbaines denses avec une navigation compliquée,
où l'estimation des largeurs de "buffer" ne suffit plus à préciser
correctement les positions relatives des divers objets à représenter.

Pour le reste (hors des voies et lignes de transport), area=no ne
semble pour l'instant servir à rien de connu, et area=yes est alors
inutile puisque c'est l'interprétation par défaut (bâtiments, et même
les murs, frontières administratives ou physiques, parcs et jardins,
zones de culture, forêts, eaux). Il doit y avoir des exceptions par
endroit pour certains tags peu employés (par exemple les pipelines).
Et plutôt que d'avoir à maintenir une liste de plus en plus longue
d'exceptions (et pas facile à mettre à jour car l'information est
disséminée et on pourrait trouver des cas contradictoires) c'est vrai
que la séparation des types géométriques serait bienvenue pour lever
cette ambiguïté de façon plus propre.

En attendant c'est à ça que doit servir l'attribut area=yes/no, mais
cela ne facilite pas la validation automatique de la géométrie des
objets et on doit alors utiliser des outils externes de surveillance
de la qualité (par exemple Osmose) pour trouver ces ambiguïtés ou
possibles anomalies liées le plus souvent à des données incomplètes ou
devenues incomplètes suite à certaines modifications :

* Par exemple quand un chemin est coupé en deux ou deux chemins sont
fusionnés, mais que le nouveau morceau n'est pas mis à jour
simultanément dans toutes les relations qui ont ce nouveau en membre
(ce qui arrive assez souvent car on ne charge pas toujours assez de
données pour trouver les dépendances et parce que la base de données
ne retourne pas toujours la liste exhaustive de ces dépendances quand
on charge pour le modifier un chemin ou même un seul noeud, même en
téléchargeant tous les objets dans un rectangle car un chemin peut y
passer sans qu'on le voit dans ce rectangle, ou parce qu'il peut aussi
en déborder avec une partie seulement de ses noeuds dans le
rectangle).

* Un jour ou l'autre il va bien falloir que la base de données
permette de charger directement la liste exhaustive des objets qui
référencent un objet donné (même si ces objets référents ne sont pas
chargés en totalité), sans avoir besoin de chercher autour par une
requête de type purement géométrique (qui a le défaut de télécharger
trop d'objets autour qui ne référencent pourtant pas l'objet demandé),
afin d'éviter ces oublis lors des modifications mais aussi économiser
des tonnes de requêtes infructueuses. Cela arrivera avant
l'introduction d'un type géométrique séparé pour les surfaces.

Cette particularité des données OSM qui confonds lignes et surfaces
par une détermination automatique et un peu informelle constitue
pourtant une difficulté sérieuse (qui doit être prise en compte dans
les outils d'exportations (utilisés par les moteurs de rendu) tels que
osm2pgspl, et qui utilisent pour la plupart une modélisation GIS plus
standard.

Ce sont ces outils de transformation automatique qui justement
cherchent à résoudre les ambiguïtés et permettent de les lister dans
un rendu d'analyse (par exemple Osmose). Jusqu'à présent cela suffit
mais c'est dommage de faire ça en deux étapes (d'autant plus que ces
étapes sont séparées dans le temps), car il n'est as toujours facile
de réparer une géométrie cassée le plus souvent de façon totalement
involontaire (surtout si cela nécessite de restaurer des objets
fusionnés ou supprimés à tord ou de façon incohérente entre plusieurs
modifications de nature différente).

Le 26 juillet 2012 11:13, Ab_fab <gamma....@gmail.com> a écrit :
> Ah, sauf si c'est implicite avec le tag amenity=school comme le dit Vincent
>
> Le 26 juillet 2012 11:11, Ab_fab <gamma....@gmail.com> a écrit :
>
>> Si si, il fallait bien !
>>
>> Le 26 juillet 2012 10:53, Francescu GAROBY <windu...@gmail.com> a écrit :
>>
>>> OK, merci pour vos explications.
>>> Et oui, c'est moi qui ai ajouté le tag "area". Fallait pas ?
>>>
>>> Francescu
>>>
>>> Le 26 juillet 2012 10:47, Ab_fab <gamma....@gmail.com> a écrit :
>>>
>>>> Le type d'objet "area" n'existe pas dans OSM. Certains souhaitent
>>>> l'introduire si l'API évolue.
>>>> Les surfaces sont actuellement des ways, ou des assemblages de ways, qui
>>>> incluent des tags supplémentaires tels que "area = yes", quand cela n'est
>>>> pas déjà sous-entendu par le tag principal comme "building = yes", pour
>>>> indiquer qu'il s'agit de surfaces
>>>>
>>>> A ce propos, est-ce toi qui a ajouté le "area = yes" dans la dernière
>>>> révision de l'objet le 24/07 ?
>>>>
>>>> Le 26 juillet 2012 07:53, Francescu GAROBY <windu...@gmail.com> a écrit
>>>> :
>>>>>
>>>>> Bonjour,
>>>>> En tagguant les établissement scolaires de ma commune, j'ai eu la
>>>>> surprise de m'apercevoir que certains bâtiments, déjà identifiés depuis
>>>>> plusieurs mois, avaient été représentés non pas par une area mais par un 
>>>>> way
>>>>> ! Ex : http://www.openstreetmap.org/browse/way/149706281/history
>>>>>
>>>>> Mes questions sont donc les suivantes :
>>>>> * sachant que la page du wiki portant sur le tag "amenity=school"
>>>>> indique bien que cela ne peut se faire que sur un node ou une area, est-il
>>>>> possible de transformer ces ways en areas, sans avoir à tout retracer ?
>>>>> * ne faudrait-il pas que ce genre de vérifications, somme toute assez
>>>>> faciles, soient effectuées au moment de la validation des modifications ?
>>>>> Soit en renvoyant un message d'erreur et en refusant l'update des données,
>>>>> soit (mais je suis moins emballé) en remplaçant automatiquement le way par
>>>>> un area ?
>>>>>
>>>>> --
>>>>> Cordialement,
>>>>> Francescu GAROBY
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Talk-fr mailing list
>>>>> Talk-fr@openstreetmap.org
>>>>> http://lists.openstreetmap.org/listinfo/talk-fr
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> ab_fab
>>>> "Il n'y a pas de pas perdus"
>>>>
>>>> _______________________________________________
>>>> Talk-fr mailing list
>>>> Talk-fr@openstreetmap.org
>>>> http://lists.openstreetmap.org/listinfo/talk-fr
>>>>
>>>
>>>
>>>
>>> --
>>> Cordialement,
>>> Francescu GAROBY
>>>
>>>
>>> _______________________________________________
>>> Talk-fr mailing list
>>> Talk-fr@openstreetmap.org
>>> http://lists.openstreetmap.org/listinfo/talk-fr
>>>
>>
>>
>>
>> --
>> ab_fab
>> "Il n'y a pas de pas perdus"
>
>
>
>
> --
> ab_fab
> "Il n'y a pas de pas perdus"
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à