OGC : Open Géospatial Consortium
JSON : Javascript Object Notation est un format d'échange léger de données
SIG : Système d'information géographique
MapBox : entreprise américaine spécialisée dans la cartographie en ligne
API : Application Programming Interface
Javascript : Langage de programmation principalement utilisé dans le cadre du développement de pages web intéractives.
OpenLayers : Librairie javascript permettant de créer des cartes géographiques web
Librairie informatique : c'est un ensemble de classes et de fonctions déjà pré-codées par des développeurs et accessible publiquement généralement dans une dépôt, utilisable dans le développement des applications selon le besoin.
PDF : Portable Document Format est un format de document très utilisée sur différents appareils informatiques(tablettes, ordinateurs, téléphones portables)
NPM : Node Package Manager est un gestionnaire de librairies javascript PBF : Protocol Buffer Binary Format
Les données géographiques vectorielles permettent de représenter les entités du monde réel sous forme de dessin. Ces données géographiques peuvent être délivrées côté client sous formes de dalles lorsqu'une requête est émise. Cela s'appelle des tuiles vectorielles. L'utilisation de tuiles vectorielles offre une rapidité d'accès aux données car ces tuiles sont pré calculées ou fabriquées à la volée lorsqu'une requête est émise, et une symbolisation côté client. L'utilisateur peut donc appliquer le style désiré côté client en créant son fichier de style. Avec l'utilisation de plus en plus fréquente des cartes sur le web et sur des applications mobiles, l'utilisateur peut parfois avoir besoin d'obtenir une image de cette carte personnalisée (avec son style) ou de l'imprimer. Cela consiste donc à rasteriser un flux de tuiles vecteurs. Actuellement il n'existe pas de solutions techniques à l'IGN permettant de répondre à ce besoin. L'objectif pour nous donc sera d'effectuer des propositions de différentes solutions techniques permettant de faire une rasterisation de flux de vecteurs tuilés à travers cet état de l'art.
Il existe deux manières de représenter les données géographiques de manière numérique à savoir : le mode vecteur et le mode raster.
Les données géographiques en mode vecteur permettent de modéliser le monde réel à travers des objets. Un objet est caractérisé par deux éléments : les informations qui lui sont associées ou données attributaires et sa forme ou sa géométrie. La géométrie est constituée d’un ou plusieurs points interconnectés. Un point est une position dans l’espace. Il existe trois principaux types de géométrie : point, ligne et polygone. Si un objet dispose d’un seul point, alors sa forme est un point. Si un objet dispose de plusieurs points qui ne forment pas de forme géométrique fermée, alors sa forme est une ligne. Si un objet dispose de plusieurs points interconnectés formant une forme géométrique close, alors sa forme est un polygone.
source : https://www.emse.fr/tice/uved/SIG/Glossaire/co/vecteur_mode.html
Les objets peuvent être par exemple des maisons, des routes ou arbres. Ils sont stockés dans des bases de données avec leurs coordonnées spatiales et leurs données attributaires ou métadonnées. Les données ou tables attributaires permettent de décrire les propriétés de l'entité. Les objets sont regroupés par thème dans les tables. Par exemple on regroupe toutes les entités représentant des batiments dans une même table. Une table est composé de lignes et de colonnes. Chaque colonne représente une caractéristique de l'entité comme la surface, la hauteur ou la date de construction d'un bâtiment. Chaque ligne représente une entité.
Les données géographiques en mode raster sont des images constitués de plusieurs pixels organisés sous forme de grilles en lignes et colonnes. Un pixel est l'unité de base de la définition d'une image numérique matricielle. A chaque pixel est associé une ou plusieurs valeurs numériques décrivant les caractéristiques de l'espace telles que la température, l'altitude ou la végétation.
source : https://naturagis.fr/cartographie-sig/difference-vecteur-raster/
Si l’on souhaite représenter différents types d’objets on utilise le principe de superposition de couches qui consiste à disposer différentes couches d’objets les unes sur les autres afin de constituer une carte. Chaque couche regroupes les données appartenant à une même thématique ou classe d'objets (immeubles, routes etc...)
source : https://www.cc-molsheim-mutzig.fr/decouvrir/cartes.htm
Les tuiles (rasters ou vecteurs) sont des paquets de données géographiques prédécoupées en forme de dalles par le serveur, prêtes à être transférées lorsqu’une requête est émise. Elles peuvent avoir différentes tailles : 64x64, 256x256, 512x512 pixels. Les services web utilisent le plus souvent des tailles de 256x256. Ces tuiles sont produites par le serveur en fonction de l’échelle de visualisation. On appelle cela le principe de la pyramide. À chaque niveau de zoom, des tuiles spécifiques sont fournis. Les tuiles présentent plusieurs avantages d'utilisation dont :
Une carte géographique est une représentation graphique d'un espace géographique. Avec l'évolution des technologies et d'internet, le besoin d'affichage de cartes géographiques sur tous types d'écrans devient de plus en plus demandé par les utilisateurs et cela est possible grâce au Web mapping. Le web mapping ou cartographie web est la forme de cartographie qui fait usage d’internet afin de concevoir, traiter, produire et publier des cartes géographiques^2. Ces communications sont possibles grâce à un ensemble de règles appelées protocole. L’OGC est une organisation internationale qui implémente des standards pour les services et le contenu géospatial, le traitement de données géographiques et les formats d’échange. Parmi les spécifications, les plus couramment utilisés à l'IGN sont :
Web Feature Service (WFS) : Permet au moyen d’une URL formatée, d’interroger des serveurs cartographiques afin de manipuler des objets géographiques vectoriels. Les opérations de manipulations permettent de : créer de nouveaux objets, effacer, récupérer, rechercher ou mettre à jour des objets.^3:
Web Map Service (WMS) : Permet de mettre à disposition d’utilisateurs distants des images géoréférencées, via une simple requête HTTP, à partir de données sources raster (image) ou vecteur. ^4
Web Map Tile Service (WMTS) : Permet d'obtenir des cartes géo-référencées tuilées à partir d'un serveur. Ce service est comparable au Web Map Service (WMS) mais tandis que le WMS permet de faire des requêtes nécessitant une certaine puissance de calcul côté serveur à chaque requête, le WMTS met l'accent sur la performance et ne permet de requêter que des images pré-calculées (tuiles) par le serveur. ^5
Tile Map Service (TMS) : Le service TMS est comme le service WFS. Il Transmet des données géographiques vectorielles mais sous formes de tuiles vecteurs.^6
La cartographie web se base sur une architecture client/serveur:
La communication s’effectue de la manière suivante :
L'on parle de flux de vecteurs tuilés lorsqu'il y'a un serveur qui délivre des tuiles vectorielles lorsque des requêtes seront émise par le serveur.
Architecture avec utilisation du service de tuilage : La communication s’effectue de la manière suivante :
Le format PBF est un format développé par google permettant de sérialiser des données structurées. Le PBF est simple d'utilisation, performant et a été conçu pour remplacer à long terme le format XML^8. OSM c'est donc basé sur ce format pour stocker et échanger les données géographiques vecteurs. Les données géographiques sont stockées au format PBF d'OSM sous forme de messages et organisés en blocs. On retrouve deux types de bloc dans les fichiers PBF à savoir :
On distingue 3 types de données géospatiales que l'on peut retrouver dans un fichier PBF:
Les tuiles sont donc servies au format PBF d'OSM lorsqu'une requête est envoyée en fonction du niveau de zoom demandé. Elles sont compressées en utilisant le format PBF pour les rendre plus légères et plus faciles à transmettre.
Comme dans notre étude nous nous intéréssons principalement aux tuiles vectorielles, il est plus que nécessaire de parler de symbologie. La symbolologie est l'ensemble d'éléments (palette de couleurs, polices d'écriture, icônes...), utilisé afin de donner une apparence visuelle à la carte et ainsi mettre en valeur les informations en fonction de leur importance. L'un des avantages comme on le disait plus haut des tuiles vectorielles est qu'elles offrent la possibilité à un utilisateur de créer sa propre symbologie côté client à travers la création d'un fichier de style. Le fichier de style va permettre de représenter chaque entité comme le souhaite l'utilisateur à travers des règles de styles bien définis. Plusieurs normes permettent de créer une symbologie côté client à savoir :
Explication du fichier de style
Le fichier de style est appliqué côté client comme montré dans la figure ci-dessous :
De manière globale, la rasterisation est un procédé qui consiste à convertir une image vectorielle en une image matricielle destinée à être affichée sur un écran ou imprimée par un matériel d'impression. Dans le cadre des SIG, la rastérisation est le passage du mode vecteur au mode raster : c'est la conversion de vecteurs (point, polygone, ligne) en une grille matricielle de pixels où chaque pixel comprend une valeur.
Dans notre cadre nous utilisons des tuiles vectorielles. La rasterisation consistera donc à effectuer une conversion de tuiles vecteurs vers des tuiles rasters. Les tuiles vecteurs sont servies au format pbf en fonction de l'échelle de visualisation. Les outils que nous présenterons doivent permettre de convertir des tuiles au format pbf vers des tuiles au format png avec le même style que l'utilisateur aura définit et sans pour autant qu'il y ait dégradation des informations.
Avec l'utilisation de plus en plus fréquente des cartes sur le web et sur des applications mobiles, le besoin parfois d'obtenir une image de cette carte ou de l'imprimer peut vraiment être problématique du fait de la qualité de rendu de l'image qui peut être parfois très floue. Actuellement il n'existe pas de solutions techniques à l'IGN permettant de répondre à ce besoin. L'objectif pour nous donc sera d'effectuer des propositions de différentes solutions techniques permettant de faire une rasterisation de flux de vecteurs tuilés à travers cet état de l'art.
ol-map-screenshot est une librairie javascript disponible sur npm, que l'on peut utiliser pour obtenir une image (capture d'écran) d'une carte web au format PNG, JPEG. Vous trouverez une demo de l'utilisation la librairie ici
Caractéristique de la librairie :
Options de rendu de l'image :
Nous avons pu testé l'outil avec différentes résolutions afin de vérifier que celle-ci fournis une image de très bonne qualité.
Test - 1 : Rendu de l'image avec comme paramètres :
Test - 2 : Rendu de l'image avec comme paramètres :
Print Maps est une application web conçu par un développeur nommé Matthew Petroff. Il a constaté qu'il était très difficile de pouvoir imprimer une carte géographique du fait de la faible résolution de celle. Il a donc conçu cet outil permettant d'obtenir des images de cartes géographiques avec une haute résolution au format PNG ou PDF. Contrairement aux autres outils, cet outil utilise les source de données provenant de Mapbox. Vous trouverez la démo de l'outil ici
Caractéristique de la librairie :
Options de rendu de l'image :
Nous avons testé l'outil avec différentes résolutions afin de vérifier que celle-ci fournis une image de très bonne qualité.
Test - 1 : Rendu de l'image avec comme paramètres :
Test - 2 : Rendu de l'image avec comme paramètres :
Ink Map est une librairie javascript basée sur open Layers capable de produire des images de carte. InkMap a été développé par camptocamp une entreprise basée en France, et a été entièrement financée par le ministère français de l'écologie. Elle a été développée afin d'obtenir des cartes de haute résolution imprimable à partir du navigateur. Vous trouverez la démo de la librairie ici
Caractéristique de la librairie :
Options de rendu de l'image :
Nous avons testé l'outil avec différentes résolutions afin de vérifier que celle-ci fournis une image de très bonne qualité.
Test - 1 : Rendu de l'image avec comme paramètres :
Test - 2 : Rendu de l'image avec comme paramètres :
OpenLayers propose différentes exemples pour son utilisation sur son site internet. Parmis les exemples on retrouve print-to-scale, qui démontre comment l'on peut obtenir une image d'une carte ave différentes mise en page en se basant sur la bibliothèque jspdf. Le rendu est un PDF de l'image de la carte produite au format JPEG et insérée par la suite dans le PDF. Vous trouverez la démo de la librairie ici
Caractéristique de la l'outil :
Options de rendu de l'image :
Nous avons testé l'outil avec différentes résolutions afin de vérifier que celle-ci fournis une image de très bonne qualité.
Test - 1 : Rendu de l'image avec comme paramètres :
Test - 2 : Rendu de l'image avec comme paramètres :