FR:Éléments

From OpenStreetMap Wiki
(Redirected from FR:Data Primitives)
Jump to navigation Jump to search

Toutes les vues de cartes sont constituées des éléments fondamentaux "nodes" (noeuds) et "ways" (chemins). Des propriétés (aussi appelés "Tags") sont assignées à ces éléments de base en utilisant des "clés" et des "valeurs" (key/value). Tous les éditeurs de cartes OSM utilisent ces éléments et permettent l'entrée de clés et de valeurs. La liste de "clés" est ouverte et sans restriction. Toutefois, une page Wiki ("Map Features") rassemble les clés et valeurs qui font consensus. Voir la liste pour l'international et la France.

Les éléments de base ont un équivalent dans la base de données en tant que données primitives.


Nœud (node) nœud

Exemple de nœud (node).
Documentation détaillée : Nœud

Les nœuds sont les éléments de base du système OSM. Les nœuds consistent en une latitude et une longitude. Une caractéristique d'élévation est prévue, voir "ele".

Des nœuds sont utilisés seuls, sans être connectés à des chemins (Ways) pour définir des points d'intérêt (POI) ou autres. Si des nœuds décrivent des points spéciaux, ils doivent au moins posséder un attribut avec une clé et une valeur. Voir: Éléments cartographiques.

Autrement, les nœuds simplement utilisés pour former les chemins ne devraient avoir aucun attribut pour minimiser l’espace interne de la base de données.

Chemin (way) chemin chemin fermé zone

Exemple de chemin (way).
Documentation détaillée : Chemin

Un chemin est une interconnexion entre au moins deux nœuds caractérisant une ligne telle que une rue, ou similaire. Les chemins sont également orientés (car l’interprétation de certains de leurs attributs dépend de leur orientation pour définir un côté gauche ou droite ou un sens de circulation vers l’amont ou l’aval). Les nœuds qui composent chaque chemin peuvent appartenir à une multitude de chemins.

Un chemin est caractérisé avec des propriétés uniformes. Les même propriétés sont par exemple, même type de voie (autoroute, voie express, etc...), même qualité de surface, même vitesse, etc... Les chemins peuvent être découpés plus tard en plus petits morceaux si différentes propriétés apparaissent.

Pour être considéré comme complet, un chemin doit également posséder au moins un attribut, ou être membre d’une relation dotée d’au moins un attribut. Voir: FR:Map Features.

Chemin ouvert (open way) chemin

Un chemin ouvert est une interconnexion ordonnée entre 2 et 2000 nœuds décrivant une fonction linéaire qui n'est pas partagée par le premier et le dernier point. La plupart des routes, cours d'eau, voies ferrées sont décrits par des chemins ouverts.

Chemin fermé (closed way) chemin fermé

Un chemin fermé est un chemin ouvert dont le dernier nœud est le même que le premier. Un exemple de chemin fermé est le carrefour giratoire (ou rond-point) : highway=tertiary + junction=roundabout).

Zone (area) zone

Exemple de zone (area).
(Documentation détaillée : Zone)

Les zones ne sont pas vraiment des éléments. Ce sont en fait des chemins refermés sur eux-même avec des tags spécifiques. Il n’y a actuellement aucune différence entre un rond-point (une vraie route fermée sur elle-même) et une zone.

Les zones sont généralement des surfaces fermées. C'est pourquoi elles sont utilisés séparément. Les zones sont des pseudo-éléments. Les zones se matérialisent en tant que surface seulement avec l’interprétation des attributs tels que "area", "water" ou autre (dans ce cas l'orientation du chemin n’est aujourd’hui plus signifiante, contrairement à ce qui était nécessaire dans le passé où il fallait distinguer par le sens le côté intérieur du côté extérieur).

Les zones (areas) doivent posséder au moins un attribut, ou être membre d’une relation dotée d’au moins un attribut. Voir FR:Éléments cartographiques.

Pour cartographier des « trous » dans une zone, par exemple une clairière dans un bois ou une "dent creuse" dans un bâtiment, voir Relations

Relation relation

Documentation détaillée : Relation

Un objet de type relation est une collection d’objets. Chaque relation doit contenir un tag type=* définissant la nature de la relation. On trouve par exemple des relations

  • de type géométrique : type=multipolygon, servant à créer une surface composée d'un ou plusieurs polygones, avec éventuellement des trous ;
  • de type sémantique : type=route, servant à regrouper des voies formant un ensemble logique ;
  • de type mixte : type=boundary, servant à délimiter une entité administrative (pays, commune, ...) par ses frontières extérieures et lui associer certains points tels que la position d’un centre administratif ou celle préférable du label mentionnant son nom dans une zone pas trop chargée (uniquement dans un but de rendu cartographique), ainsi que d’autres attributs de classification ou de données (population, champs d’adresse, codification).

Attributs (tags) attribut

Documentation détaillée : Attributs

Un attribut ou balise (tag) ne doit pas être vu comme un « élément » en tant que tel, mais il s’agit plutôt d’une petite unité de donnée qui complète l’élément en lui ajoutant une propriété optionnelle. Une balise se compose de deux champs de texte, l’un est une clé et l’autre la valeur (key=value), chacun d’entre eux est une chaîne  Unicode codée en UTF-8 sur 255 octets ou moins. De nombreuses conventions existent pour décrire les caractéristiques de chacune d’entre elles. Par exemple, une voie résidentielle est décrite par une clé highway et une valeur residential pour former l’attribut highway=residential.

Les clés peuvent en outre être composées par un système d’espace de noms pour affiner leur but, ainsi maxspeed:winter=* indique qu’il y a une limite de vitesse spécifique durant l’hiver. Pour un même élément ne peut exister qu’un seul attribut ayant la même clé. Les attributs sont créés et présentés dans un ordre quelconque, non significatif, la clé unique étant une condition nécessaire et suffisante pour les identifier.

Propriétés communes

Nœuds, chemins et relations possèdent les propriétés communes suivants, c’est-à-dire qu’OSM stocke ces éléments pour chaque élément.

Nom Valeur Description
id entier 64 bits Utilisé pour identifier l’élément. Chaque type d'élément possède son propre identifiant (ID), ainsi il peut y avoir un nœud avec id=100 et un chemin avec id=100, qui ont peu de chance d'être en relation ou géographiquement proches l’un de l'autre. Les éléments présents dans la base ont tous un identifiant positif, les identifiants nuls ou négatifs sont utilisés temporairement lors la création de nouveaux éléments avant de recevoir un identifiant positif de substitution, attribué par la base de données.
user chaîne Le nom complet de l'utilisateur qui a modifié l'objet. Un utilisateur pouvant changer son nom d'affichage, ou se rendre anonyme, cette donnée est seulement informative et n’est pas stocké avec l’élément lui-même.
uid entier L'identifiant numérique de l'utilisateur qui a modifié en dernier l'objet. L’identifiant numérique ne peut être changé sur aucun des objets visibles, ni sur aucun des objets supprimés non masqués dans l’historique et pouvant être restauré à son état dans une version précédente visible. Il n’est en fait plus stocké directement dans l’élément lui-même mais dans son groupe de modifications associé, aussi cette propriété est seulement informative.
timestamp W3C Date and Time Formats Horodatage (date et heure, en temps universel coordonné) de la création, modification ou suppression de l’élément dans sa version sélectionnée (par défaut, le serveur retourne les éléments dans leur dernière version, si elle est visible). L’horodatage n’est pas nécessairement unique entre deux versions successives d’un même élément. Le but est essentiellement informatif afin de permettre de sélectionner dans la base un ensemble d’éléments dans leur dernier état connu à une date donnée. L’horodatage indiqué pour une version de l’objet est cependant compris dans l’intervalle de temps de son groupe de modifications associé.
visible true ou
false
visible="false" lorsqu’une version de l’objet est supprimée dans la base de données, l’objet ne peut alors être retrouvé qu'en utilisant les appels d'historique (sauf s’il a fait l'objet d’un masquage permanent pour des raisons essentiellement légales (par exemple, violation de droit d’auteur par importation depuis une source non autorisée, violation de données personnelles sans accord de l’ayant-droit, ou bien licence incompatible avec le projet, ou autres abus tels que des propos irrespectueux, dégradants ou menaçants dans les données), ou d’un usage abusif par certains utilisateurs et nuisible au projet (pollution, « spams », dégradations importantes), ou encore pour se soumettre à une injonction judiciaire exigeant le retrait de la publication de certaines données.
version entier positif Le numéro de version de l'objet. Toute nouvelle création d'objet obtient la version 1. Et la valeur est par la suite incrémentée par le serveur quand un client téléverse une nouvelle version de l'objet. Le serveur rejettera une nouvelle version d’un objet si la version envoyée par le client n’est pas conforme avec celle de l’objet dans la base de données. Il est possible de charger une ancienne version de l’objet en consultant son historique des versions visibles.
changeset entier le groupe de modifications dans lequel la version de l’élément a été créé ou mis à jour. Un même groupe de changements ne peut être associé qu’à un seul utilisateur, mais un même utilisateur peut modifier un même élément dans deux groupes de modifications différents (par exemple en utilisant des éditeurs différents) dans le même intervalle de date. Également, un même élément peut avoir plusieurs versions dans le même groupe de modifications (non nécessairement successives car il peut y avoir des versions intermédiaires de l’élément provenant d’autres groupes de modifications, effectués par le même utilisateur ou par d’autres).

Bien sûr, en plus, nous stockons les attributs ou balises (tags), et aussi un historique complet de chaque élément.

Note historique : segments

Nous avions par le passé un autre élément de base appelé « segment » (décrit par une paire de nœuds distincts). Les segments ont été supprimés depuis la version 0.5 de l'API (voir Protocol) et le concept n’est plus utilisé par aucun éditeur ou outil d’OpenStreetMap. Ils ont été remplacés par les chemins (permettant de tracer des lignes avec beaucoup plus que deux nœuds sans devoir baliser chacun des segments qui les joignent, et de former des chemins fermés, sans avoir à créer nécessairement une relation pour les relier).

Voir aussi