FR:Bâtiments 3D simples
Cette page décrit les tags à utiliser pour une modélisation basique des bâtiments en trois dimensions. Le schéma de description est pour des bâtiments basiques et est donc limité. Tous les détails ne pourront pas être décrits par celui-ci. Vous pouvez signaler les cas d'éditions complexes sur la page de discussion (en anglais) ou consulter la page F3DB (Full 3D Building) pour les propositions de cartographie 3D avancée.
La méthode qui suit est le résultat du second Workshop 3D Garching, où la plupart des développeurs 3D se sont mis d'accord pour utiliser un jeu de tags unifié dans leur programmes. Essentiellement, le volume d'un bâtiment est décrit à l'aide de deux types d'aires. Le contour du bâtiment (building=*) pour l'aire globale du bâtiment et les parties de bâtiments (building:part=*) pour décrire les éléments avec des hauteurs différentes ou d'autres caractéristiques.
[Page cohérente avec la reference anglaise au 25/7/2020]
Comment cartographier
Contour d'un bâtiment
Le contour du bâtiment est représenté avec le tag building=*. Il s'agit de l'aire couverte par l'union de toutes les parties du bâtiment.
D'autres tags se référant au bâtiment entier (par exemple l'adresse, le nom, l'opértateur, etc.) doivent être placés sur le contour du bâtiment. Un bâtiment devrait avoir un unique tag building=*, plusieurs bâtiments ne devant pas se chevaucher.
Le contour du bâtiment assure la compatibilité avec les logiciels de rendu 2D, comme Mapnik, et d'autres consommateurs de données qui ne s'intéressent pas à la modélisation 3D. Lorsqu'un bâtiment comporte des zones utilisant des balises 3D de type building:part=*, le contour du bâtiment n'est pas pris en compte pour le rendu 3D.
Parties d'un bâtiment
Si certaines parties du building=* ont des caractéristiques différentes (par exemple la hauteur, la couleur, etc.), elles peuvent être modélisées avec des polygones supplémentaires, que l'on taguera simplement building:part=yes ou en précisant n'importe quelle valeur du tag building=*.
Les zones building:part=* doivent recouvrir la totalité du contour du batiment, elles peuvent cependant se chevaucher ou être disjointes, selon le bâtiment (c'est inévitable pour un codage d'un batiment 3D dans un plan). Par contre, il faut éviter de faire se chevaucher les volumes 3D que vous modélisez - surtout si les volumes ont des faces communes.

Les attributs spécifiques aux parties de bâtiment building:part=* sont détaillés plus loin. Notez qu'étant destinés au rendu 3D de parties marquées building:part=*, ils seront normalement ignorés par les rendus cartographiques 2D.
Rassembler les éléments avec une relation
Si au moins une partie d'un bâtiment est suspendue au-dessus de l'empreinte du bâtiment ou si le bâtiment a une structure complexe avec beaucoup de parties, une relation de type type=building peut être utilisée pour regrouper le plan du bâtiment et toutes les parties du bâtiment. Mais dans la pratique, la relation n'est pas nécessaire et il suffit de positionner toutes les parties du bâtiment à l'intérieur du contour du bâtiment comme décrit ci-dessus.
Si la relation type=building est définie pour le bâtiment,
- le contour du bâtiment doit être répertorié avec le rôle
outline.
- toutes les parties building:part=* du bâtiment doivent apparaître comme membres de la relation avec le rôle
part.
De plus, elle peuvent être situées de toutes les manières possibles (à l'intérieur, à l'extérieur, se croisant, se touchant) par rapport au contour du bâtiment. Elles n'ont plus besoin d'être positionnées obligatoirement à l'intérieur du contour building comme c'est le cas sans la relation.
Attributs pour les contours et parties de bâtiment
Les attributs suivants peuvent être utilisés sur les contours et les parties d'une construction.
Hauteur et nombre d'étages
Key | Commentaire |
---|---|
height=* | Distance entre le sol et le haut du toit, à l'exclusion des antennes, des girouettes et des autres équipements montés sur le toit. |
min_height=* | Hauteur approximative au dessous de l'élément du bâtiment. Notez que lorsque min_height=* est utilisé, height=* est toujours définie comme étant la distance entre le sol et le haut de la structure. Ainsi, un pont qui a 3 mètres de hauteur, où la partie inférieure du pont est positionnée à 10 mètres au-dessus du niveau du sol aura min_height=* = 10, height=* = 13. |
building:levels=* | Nombre d'étages du bâtiment au-dessus du sol (sans le niveau du toit), permet de texturer le bâtiment de manière simple.
Si vous ajoutez de nouveaux bâtiments, essayer de donner une valeur de hauteur avec height=*. Essayez d'utiliser building:levels=* uniquement en complément du tag height=* ! |
building:min_level=* | Nombre de niveaux à ignorer dans une partie de bâtiment, analogue à min_height=*. |
Toiture
Forme du toit
Vous pouvez caractériser le toit d'un bâtiment grâce à un ensemble de types de toits simples décrits ci-après (la toiture désigne l'ensemble des toits d'un bâtiment).
D'autres types de toits pourront êtres ajoutés à l'avenir (S3DB_Proposals), dont des approches plus approfondies pour du "modelling" (assemblage) manuel (par exemple ProposedRoofLines ou les parties de OSM-4D/Roof_table).



Image | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|---|
roof:shape | flat | skillion | gabled | half-hipped | hipped | pyramidal |
signification | plat | appentis | pignon | demi-croupe | en croupe | pyramidal |
Image | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
---|---|---|---|---|---|---|
roof:shape | gambrel | mansard | dome | onion | round | saltbox[1] |
signification | mansarde | mansarde en croupe | dôme | oignon | rond | saltbox |
Autres valeurs courantes et problèmes.
Valeur | Commentaire |
---|---|
saltbox | problématique du fait de définitions / significations conflictuelles de "saltbox" dans ce contexte.[2] |
double_saltbox, quadruple_saltbox | Idem. |
sawtooth | Toiture en dents de scie du style usine. |
cone, conical | Les deux sont rarement utilisés |
side_hipped | La moitié d'un toit en croupe, différent de la demi-croupe. Un pignon sur un coté du toit, et une 'croupe' avec trois pentes de l'autre côté. Est rencontré sur un grand bâtiment ayant un toit en croupe avec des parties de bâtiment rattachées en "side_hipped'. |
lean_to | Pas clair, probablement un appenti. |
shed | Pas clair, probablement un pignon ou appenti. |
gabled_row | Pas clair, parfois utilsé avec un toit en dents de scie (sawtooth), parfois une série de 'gabled terraces' (?). |
crosspitched | Toiture en croix avec deux toits de style pignons à 90 degrés. |
many | Indique un bâtiment qui a de multiples différentes formes de toits. Un tel bâtiment devrait avoir des building:part=* portant les différentes valeurs roof:shape. Devrait être évité, l'historique de cette valeur est décrite dans roof:shape=many. |
Autres caractéristiques des toits
Key | Comment |
---|---|
roof:orientation=along/across | Pour les toitures avec une arête, celle-ci est supposée être parallèle au côté le plus long de l'édifice (roof:orientation=along). Mais elle peut être renseignée explicitement avec cet attribut. |
roof:height=* | Hauteur du toit en mètres. La hauteur des façades est déterminée par la hauteur totale du bâtiment height=* à laquelle est soustraite la hauteur du toit roof:height=* Exemple : pour un bâtiment de 6 mètres de hauteur (height=6) avec un toit de 2 mètres de hauteur (roof:height=2), les façades mesureront 4 mètres de hauteur. |
roof:angle=* | Angle du toit en degrés. À la place de roof:height=*, la hauteur du toit peut être indiquée implicitement en donnant l'inclinaison des pans. |
roof:levels=* | Nombre d'étages du toit, qui ne sont pas déjà pris en compte dans building:levels=*. |
roof:direction=* | Direction du toit en fonction des points cardinaux (N, S, E, W, NE, SW, NNE...) ou en degrés (0° étant le nord).
Exemple : pour un toit skillion roof:direction=SSW (ou roof:direction=202), la pente desendante du toit sera orientée vers le sud-sud-ouest. |
roof:material=* | Le matériaux couvrant le toit. Utile en conjonction avec roof:colour=*. |
roof:colour=* | La couleur dominante du toit. Utile en conjonction avec roof:material=*. |
Encore une fois, certains toits (par exemple, les bâtiments carrés) ne peuvent pas être modélisés avec précision avec les techniques simples décrites sur cette page.
Surface, couleur et matériaux
Key | Commentaire |
---|---|
building:colour=* | Couleur de la facade du bâtiment. Voir colour=* pour les différentes valeurs possibles. |
roof:colour=* | Couleur de la toiture du bâtiment. Voir colour=* pour les différentes valeurs possibles. |
building:material=* | Matériau de la façade du bâtiment. |
roof:material=* | Matériau du toit du bâtiment. |
Terminologie utile à connaître pour la toiture
Le codage des toits est basé sur des termes architecturaux anglais présenté dans l'image ci dessus. Les connaître facilite sa compréhension.
Exemples de réalisations en 3D
Pour se rendre compte du travail déja réalisé et avoir plus d'exemples de codage, les pages suivantes permettent d'explorer rapidement des zones complètes ou des bâtiments intéressants :
- Exemples de zones en 3D rassemble une collection de zones riches en bâtiments 3D (et met à disposition les liens directs pour les différents outils)
- Exemples de bâtiments 3D propose des vues directes sur des bâtiments remarquables du monde entier.
Vous pouvez aussi consulter Example Models
Support logiciel
- Article principal : 3D development
De nombreuses cartes et outils supportent le modèle 3D simplifié. Parmi les premiers, il y eut le rendu OSM-3D.org en 2009, le rendu OSM2World et le greffon JOSM Kendzi3D en 2011, et le SDK Nutiteq Android 3D Mapping'' (maintenant Carto Mobile SDK) ainsi que WikiMiniAtlas en 2012. OSMBuildings lança un affichage 2.5D en 2012, suivi par une version 3D en 2015. En 2013, F4 Map devint le premier rendu dans un navigateur à supporter totalement le schéma Bâtiments 3D simples.
Outils d'édition
Nom du logiciel | Plateforme | Support du schéma | License | Notes |
---|---|---|---|---|
Kendzi3d | Windows, macOS, Linux | oui | BSD | greffon JOSM |
SketchOSM | Windows | partiel | Propriétaire | SketchUp greffon en béta, arrêté en juillet 2020 |
Map applications
Nom du logiciel | Plateforme | Support du schéma | License | Notes |
---|---|---|---|---|
CartoType Maps App | Windows, Linux, Macintosh | partiel | Propriétaire mais sans restriction d'utilisation | Une application libre de démonstration application pour la librairie propriétaire CartoType. La version CartoType GL implémente la plupart des formes de toit. Inclut un éditeur de feuilles de style. |
F4 Map | Web | oui | Propriétaire | Demo Web Map avec support de rendu et d'animations |
Mapbox Static API | Web | partiel | BSD | Nécessite un compte libre Mapbox Studio. |
OpenScienceMap | Web | partiel | LGPL | Interprète uniquement les clés height/min_height côté client. The S3DB Layer uses vtm meshes generated on the server (using plpgsql with PostGIS and SFCGAL). Web map |
OSG-Maps | Android | partiel | Propriétaire | |
OSM2World | Web | partiel | LGPL | Implémente actuellement le reste des fonctionalités pour la version 0.2.0 - slippymap (Allemagne uniquement) |
OSM-3D.org | Web | partiel | see OSM-3D#Buildings | |
osmapa.pl Mapnik stylesheet | Web | partiel | La plupart des types de toit rendus en vue 2.5 | |
OSMBuildings | Web | partiel | BSD | |
OSM go | Web | partiel | GPL | Uniquement pyramide et dôme, en plus du toit plat (par défaut). |
WikiMiniAtlas | Web | partiel | GPL | uniquement les toits pyramidaux |
VR Map | Web | partiel | MPL | Seulement les hauteurs et couleurs |
Streets GL | Web | partiel | MIT | Beaucoup d'élément gérés, heure de la journée configurable, trafic aérien en temps réel |
Map frameworks
- Article principal : Frameworks
Nom du logiciel | Plateforme | Language | Support du schéma | License | Notes |
---|---|---|---|---|---|
Carto Mobile SDK | Android, iOS, Windows Phone | Java, Objective-C++, Swift, C# | partiel | BSD | La plupart des formes de toit sont supportées; cf. Carto's documentation |
CartoType for Android | Android | Java | partiel | Propriétaire | La plupart des formes de toit sont supportées. Les styles peuvent être controllés avec les feuilles de style XML CartoType's. Utilise l'accélération graphique OpenGL. Les angles de vue, hauteur, champ de vue, etc. peuvent être modifiés. |
CartoType for iOS | iOS | Objective C, Swift | |||
CartoType for C++ | Windows, Linux, OS X (Macintosh) | C++ | |||
CartoType for .NET | Windows | C#, VB.NET and other .NET languages | |||
CartoType for Qt | Qt on Windows, Mac (OS X) and Linux | C++ | |||
Mapbox GL JS | Web | JavaScript | partiel | BSD | Options for customizing 3D building display are included in the Mapbox Style Specification. (See Mapbox's blog post announcing GL JS support.) |
Mapbox Android SDK | Android | Java | |||
Mapbox iOS SDK | iOS | Objective-C, Swift, Interface Builder | |||
Mapbox macOS SDK | macOS | Objective-C, Swift, Interface Builder, AppleScript | |||
Mapbox Qt SDK | Qt | C++, QML | |||
Mapbox Unity SDK | Cross-platform | C# | Apache | ||
node-mapbox-gl-native | Node.js | JavaScript | BSD | ||
osm2x3d | Web | partiel | Unknown![]() |
see also [1] and [2] | |
OSMBuildings | Web | JavaScript | partiel | BSD | versions 2.5D and 3D disponibles |
Tangram | Web | JavaScript | partiel | MIT | Mapzen rend les bâtiments 3D dans Tangram et d'autres produits |
Tangram ES | Android, iOS, Linux, macOS | C++ | |||
VTM | Android, iOS, Web | Java | partiel | LGPL | Partie du projet mapsforge. |
Design tools
Nom du logiciel | Plateforme | Support du schéma | License | Description |
---|---|---|---|---|
blender-osm | Windows, macOS, Linux | partiel | GPL | Un clic télécharge et importe OpenStreetMap et le terrain. Peut importer plus de 100,000 bâtiments. Un grand nombre de formes de toits est supporté : flat, gabled, hipped (for a quadrangle outline only), mono-pitched, half-hipped, round, pyramidal, gambrel, dome, onion and saltbox. |
Mapbox Studio | Web | partiel | Propriétaire | Inclut un éditeur de style Mapbox GL qui supporte les hauteurs de building:part. |
Maputnik | Web | partiel | MIT | Un éditeur de style Mapbox GL qui supporte les hauteurs de building:part. |
Tangram Play | Web | partiel | MIT | Un éditeur de scène Tangram qui supporte l'extrusion de bâtiments avec des hauteurs basées sur les données OSM. |
Voir aussi
- F3DB pour "Full 3D Buildings" : une proposition abandonnée de modélisation 3D
- ↑ By some users/editors, the roof shape which is shown on this picture may be interpreted as double_saltbox, whereas saltbox then has only one upper roof edge.
- ↑ https://lists.openstreetmap.org/pipermail/tagging/2020-February/thread.html#51110