Outils pour utilisateurs

Outils du site


openstreetmap:introduction:le_modele_de_donnees

OpenStreetMap – Le modèle de données

Dans OpenStreetMap les données ne sont pas séparées en couches. Si toutes les données sont regroupées dans une même couche topologique, tout n'est pas pour autant connecté. Le modèle de données est simple et extensible à volonté, il a été conçu pour la contribution.

Nodes, ways et relations

La base de données OSM contient trois types d'éléments :

Node : un node contient un identifiant, une longitude et une latitude. Il peut aussi porter un ou plusieurs attributs (tags). Un node représente un élément ponctuel (ex. un banc, un carrefour), c'est aussi l'élément de base pour constituer un way.

Way : un way est constitué de 2 à 2000 nodes et doit porter au moins un tag. Un way représente un élément linéaire (ex. une route), il peut aussi représenter un polygone lorsqu'il est fermé (ex. un bâtiment)

Relation : une relation est une liste ordonnée d'éléments (nodes, ways ou relations), à chaque élément peut être associé un rôle. Par exemple toutes les sections d'une rue sont regroupés dans une relation.

Le node est le seul élément portant une position géographique (définie en WGS841)) dans OpenStreetMap. Les coordonnées géographiques des ways sont portées par les nodes. Un même node peut faire partie d'un way et représenter un élément ponctuel, par exemple un passage piéton.

Hétérogénéité des géométries

Certains types d'objets peuvent être représentés par plusieurs types d'éléments. Par exemple un magasin peut être modélisé par un noeud s'il s'agit d'un commerce occupant une partie d'un bâtiment, ou par un polygone (way fermé ou relation) s'il s'agit d'une grande surface occupant l'ensemble du bâtiment.

Le principe est de représenter le plus fidèlement possible la réalité du terrain, et non d'être contraint par un modèle de données. Dans la réalité cela dépend aussi du contributeur, par exemple un terrain de camping pourra être représenté par un noeud si son périmètre ne peut être facilement déterminé.

Système de coordonnées

Le système de coordonnées géographiques des données d'OpenStreetMap est le WGS84 : Longitudes et Latitude en degrés décimaux. Cependant la carte est dans un système projeté qui est le WGS 84 / Pseudo-Mercator (EPSG : 3857) et standard de fait du webmapping (Google Maps, OSM, etc.). Il est « non conforme » (les angles ne sont pas (bien) conservés) mais les calculs sont simplifiés.

Sur le Wiki : les éléments de base

Les attributs

L'origine du verbe "tagguer"

Un tag associe une valeur à une clef. Clefs et valeurs sont des chaînes de 255 caractères maximum. Chaque élément de la carte (node, way, relation) peut porter des tags qui le décrivent plus ou moins précisément.

Les clefs et les valeurs sont libres, tout contributeur peut en définir de nouvelles. Il existe toutefois un référentiel des tags documenté sur un Wiki : les éléments cartographiques. Ce référentiel est établi par la communauté OpenStreetMap qui le fait évoluer au gré des besoins. Pour que les données créées dans OSM soient valorisées, notamment affichées sur les cartes, il convient de respecter ce référentiel.

On peut distinguer plusieurs types de tags :

  • tags primaires, qui définissent les catégories d'éléments cartographiques
  • tags secondaires, qui précisent le type des éléments
  • tags complémentaires, qui donnent des informations supplémentaires

Par exemple un parking à vélos peut être décrit ainsi :

Clef Valeur Description
amenity bicycle_parking Tag primaire indiquant un parking à vélo
bicycle_parking stands Tag secondaire donnant le type de stationnement
capacity 12 Tag complémentaire : nombre de vélos que l'on peut stationner

La clef du tag secondaire est identique à la valeur du tag primaire, il s'agit d'une pratique courante. Variante : terminer la clef par _type, par exemple barrier=fence et fence_type=*.

Namespaces

Il existe aussi des espaces de nommage (namespaces) qui servent à regrouper des clefs ou à les qualifier. Un espace de nommage est un préfixe ou un suffixe à une clef, dont il est séparé par le caratère :. Voici quelques exemples :

  • cycleway:right=lane, cycleway:left=share_busway
  • name:fr=Vannes, name:br=Gwened, name:la=Darioritum
  • contact:phone, contact:fax, contact:website, contact:email, contact:twitter …

Ces namespaces peuvent être structurés sur plusieurs niveaux, séparés par autant de :. C'est par exemple le cas des conditions de stationnements sur la voirie, décrit sur la page FR:Key:parking:lane .

Les relations

Une relation permet de modéliser un objet composé de plusieurs autres, par exemple une rue et ses tronçons, une ligne de bus et ses arrêts. Une relation permet d'associer logiquement des objets proches, par exemple les restrictions à un carrefour.

Une relation ne doit pas être utilisée pour :

  • créer des catégories, comme les restaurants d'une chaîne (que l'on identifiera avec l'attribut operator par exemple)
  • faire des regroupements géographiques, par exemple les sentiers de Bretagne (qui pourront être obtenus par une requête spatiale).

Toute relation doit porter un attribut type, dont la valeur définit le type d'objet représenté. Voici les types de relations les plus courants :

type= Objet représenté Exemples
associatedStreet Une rue, ses tronçons et ses adresses Rue de la Poste, Place de l'Église
route Itinéraire Une route (N10, A84), un ligne de bus et ses arrêts, un itinéraire de randonnée
boundary Limite administrative Communes, EPCIs, départements, régions, pays …
restriction Restriction de manoeuvre Interdiction de tourner à gauche à un carrefour
waterway Cours d'eau La Loire découpée en sections … et ses affluents

Une relation est constituée d'une suite ordonnée d'éléments. Ces éléments (nodes, ways ou relations) peuvent avoir un rôle. Ainsi une rue est une relation de type associatedStreet constituée de ways avec le rôle de street (les tronçons) et de nodes avec le rôle de house (les adresses).

Combinons nodes, ways et relations

Le schéma suivant illustre comment nodes, ways, relations et tags se combinent pour décrire une petite section de voirie.

Sur le Wiki : les types de relations

Les surfaces

Une zone ou surface peut être représentée de deux manières :

un way fermé permet de définir un polygone simple, défini par une série de noeuds (le premier et le dernier sont identiques). L'ordre des noeuds (horaire ou trigonométrique) n'a pas d'importance.

Un way fermé peut porter le tag area=yes en cas d'ambiguité. Par exemple une zone piétonne portera les tags highway=pedestrian et area=yes, une piste de sport pourra porter leisure=track et area=no.

une relation de type multipolygone (attribut type=multipolygon) permet de représenter des surfaces complexes. Il s'agit de polygones contenant un ou plusieurs trous (voire des îles dans ces trous), ou de surfaces dont le ou les périmètres sont constitués d'une série de ways (par exemple les limites administratives).

Les rivières peuvent être représentées à la fois par des éléments linéaires et par des éléments surfaciques. Ces derniers sont des relations de type multi-polygone portant le tag waterway=riverbank. Exemple avec une section surfacique de la Loire et l'intégralité de son parcours et de ses affluents.

1)
Système géodésique mondial de 1984 - article Wikipédia
  • Printable version
  • Export to OpenOffice
  • Export to PDF
  • Add page to book
  • Tools:
openstreetmap/introduction/le_modele_de_donnees.txt · Dernière modification: 2020/01/10 10:03 par admin