Bonheur-ANGO / orvt

Outil de rasterisation de flux de vecteurs tuilés
0 stars 1 forks source link

ORVT : Outil de rasterisation pour les vecteurs tuilés

Table des matières

Glossaire

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

I - Introduction

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.

II. - Données géographiques : vecteur et raster

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.

II.1 - Mode vecteur

II.1.1 - Généralités

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.

Les différentes formes de vecteurs

source : https://www.emse.fr/tice/uved/SIG/Glossaire/co/vecteur_mode.html

II.1.2 - Table attribuaire

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é.

table attributaire

II.2 - Mode raster

II.2.1 - Généralités

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.

raster

source : https://naturagis.fr/cartographie-sig/difference-vecteur-raster/

II.3 - Le principe de couches

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...)

superposition des couches

source : https://www.cc-molsheim-mutzig.fr/decouvrir/cartes.htm

II.4 - Tuiles

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 :

Tableau récapitulatif

source : https://docs.qgis.org/3.16/fr/docs/user_manual/working_with_vector_tiles/vector_tiles_properties.html

II.5 - Cartographie web

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 :

Protocoles

II.6 - Architecture de la cartographie web

La cartographie web se base sur une architecture client/serveur:

La communication s’effectue de la manière suivante :

architecture cartographie web

II.8 - Flux de vecteurs tuilés

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 :

flux de vecteurs tuilés

II.10 - Tuiles vectorielles : Format PBF

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.

Transmission des tuiles

II.10 - Tuiles vectorielles : symbologie

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 :

Illustration application du fichier de style

II.10 - Rasterisation

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.

rasterisation

source : https://www.researchgate.net/figure/Principe-de-la-rasterisation-conversion-du-format-vecteur-vers-le-format-raster_fig1_342344729

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.

outil de rasterisation

 

III - Etat de l'art des solutions techniques permettant d'effectuer une rasterisation de flux de vecteurs tuilés à l'IGN

II.1 - Objectif

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.

II.2 - Solutions techniques

II.2.1 - Librairie Javascript : ol-map-screenshot

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

II.2.1.1 - Tests

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é.

II.2.1.2 - Conclusion

II.2.2 - L'outil : Print Maps

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

II.2.2.1 - Tests

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é.

II.2.2.2 - Conclusion

II.2.3 - La librairie : Ink Map

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

II.2.3.1 - Tests

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é.

II.2.3.2 - Conclusion

II.2.4 - OpenLayers : print-to-scale

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

II.2.4.1 - Tests

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é.

II.2.4.2 - Conclusion

 

Sources