Comment avoir de bonnes relations

Bonjour (oui oui, je sais qu’on n’est pas sur Meetic :slight_smile: )

En parcourant le forum et le Wiki, j’ai regardé plus précisément les relations possibles entre objet.
C’est un concept que je ne maîtrise pas encore vraiment.
Les modifications en cours dans mon coin m’amènent donc à deux questions :

1) Zone résidentielle.

J’ai (re)défini la zone résidentielle du village (l’ancienne étant incomplète).
J’y ai ajouté les Tags principaux (nom, code postal, pays, etc) et un tags “is_in” avec les noms des entités (boundaries) supérieures.
Quasi toute la belgique est traitée pour les zone administratibe (Pays, Région, Province,etc).
Ce tag suffit-il à “lier” ma zone résidentielle avec ces autres entités ?

Ma zone résidentielle est Fays-Les-Veneurs et doit (devrait ?) être en relation avec la commune de Paliseul.
La relation mise en place par le projet belge est celle-ci :

http://www.openstreetmap.org/relation/2248105

2) Bâtiments "Ferme"

Dans ma zone, j’ai créé plus zone “Bâtiments de ferme” qui reprennent tout le terrain à usage autour de la ferme.
J’ai aussi créé tous les bâtiments à l’intérieur de cette zone, pour le moment tagger simplement “Bâtiment”
Est-ce la bonne approche, si oui, comment établir une relation entre les bâtiments et leur zone ?

Merci d’avance pour vos avis

On dit d’OSM que c’est d’abord une base de données géographiques. Mais il faudrait dire en fait que c’est une base de données géospatiales. Ca veut dire qu’avec cette base, il est possible de déterminer quel objet (ou élément) est “à l’intérieur de” autres objets ou éléments. Par exemple, si un noeud ou un polygone “est à l’intérieur ou pas” d’un autre polygone. Ou encore si un objet ou élément “est proche” d’un autre.

C’est pourquoi, par exemple, l’utilisation du tag “is_in” est généralement inutile parce que les bons logiciels de géocodage comme “nominatim” n’en ont pas besoin (sauf cas particuliers). Un village est généralement identifié par un élément portant le tag “place=village”. Habituellement, ce tag est mis sur un noeud placé plus ou moins au centre du village (qui n’est pas forcément le centre géométrique). Mais ce noeud n’est pas seul. Le village possède habituellement des limites adminitratives, les limites communales. Ces limites sont normalement définies par une relation de “type=boundary” + “boundary=administrive” + “admin_level=8”. On a donc dans la base de données géospatiales un point (noeud) “place=village” à l’intérieur d’un polygone “limites communales du village”. Tous les bons logiciels sont capables de retrouver qui est à l’intérieur de quoi en quelques millisecondes dans ce type de base de données.

Ca veut dire que dans OSM, les relations entre objets sont d’abord spatiales (“à côté de”, “à l’intérieur de”, etc). Il existe cependant des liens entre objets qu’il n’est pas possible de définir uniquement par leur position sur la carte. On utilise alors pour eux un type d’élément particulier qu’on appelle “relation” (en complément des “ways” et “nodes”). Mais on ne s’en sert que lorsqu’on ne peut pas faire autrement (et plus simple).

Pour comprendre, revenons sur ton exemple de “Bâtiments de ferme”. Si le terrain à usage autour de la ferme tient dans un seul polygone, alors on trace un seul polygone, on y colle le nom de la ferme et d’autres tags (“landuse=farmyard”, “place=farm”). Puis on trace les bâtiments à l’intérieur du polygone avec éventuellement leur fonction (building=*). Certains attributs devraient être unique, comme par exemple, le nom de la ferme (“name=nom_de_la_ferme”) ne devrait être placé que sur un seul de ces éléments (soit sur le bâtiment principal, soit sur le polygone identifiant toute la surface et taggué “landuse=farmyard”).

Ca se complique si la ferme est très importante et si certains bâtiments sont par exemple éparpillés un peu partout et qu’il est impossible de tous les mettre dans un seul polygone. A ce moment-là, on crée autant de polygones “landuse=farmyard” que nécessaire et on les lient virtuellement ensemble par une relation de type “site” (http://wiki.openstreetmap.org/wiki/Relation:site). A ce moment-là, le tag “name=nom_de_la_ferme” est placé sur la relation.

La réponse à tes interrogations est donc qu’il n’y a pas besoin (a priori) de relations pour les cas que tu as évoqués.

J’ai juste mis une zone “résidentielle” qui reprend le village car je n’ai pas encore les bonnes données pour faire les frontières de la section (en admin level 9).
Je me suis rendu compte que les relations étaient (plus ou moins) automatiques en chargeant les données dans Josm (qui je suis occupé à apprendre) et qui montre toutes les relations qu’il connait quand je sélectionne cette zone.

Merci pour cette explication détaillée (qui m’exonère - pour le moment - de faire les relations).