Les tuiles vectorielles sont un format de données vectorielles très efficace pour la cartographie web. Le principe consiste en diviser l'ensemble des données vectorielles d'un projet en tuiles de manière analogue aux tuiles des données matricielles (WMTS).
Il existe plusieurs standards pour produire des tuiles vectorielles. Mapbox a proposé un standard basé sur l'encodage Protocol buffers (" Protobuf ") créé par Google (https://developers.google.com/protocol-buffers). Le tuiles vectorielles de Mapbox (mvt) sont supportées par un grand éventail de produits cartographiques parmi lesquels JMap Server à partir de la version Jakarta.
Une grille qui définit le tuilage est appliquée aux données vectorielles qui sont alors découpées en tuiles. Chaque tuile peut contenir les données vectorielles (vecteurs) de plusieurs couches.
Un ensemble de tuiles est produit pour chaque niveau d'échelle. Dans la cartographie web en général se considèrent 23 niveaux d'échelle, le niveau 0 correspondant à la Terre et le niveau 22 correspondant à la rue. Les vecteurs des niveaux inférieurs sont simplifiés (généralisés) pour optimiser l'affichage des données tout en gardant des tuiles d'un volume performant.
Les vecteurs (lignes, polygones) de chaque couche sont coupés aux frontières des tuiles. Lorsque les géométries traversent la frontière entre les tuiles, celles-ci sont coupés et chaque tuile contient donc une partie de la géométrie. C'est l'application cartographique qui réunifie les vecteurs pour obtenir la géométrie complète.
Les attributs des éléments cartographiques sont inclus dans les tuiles. Ceci rend possible, par exemple, l'affichage de thématiques créées à la volée ou l'affichage des données dans une carte en fonction de l'application de filtres basés sur leurs attributs. Les données sont ainsi plus dynamiques et interactives.
Les tuiles vectorielles contiennent les géométries et leurs attributs, les styles ne sont pas inclus dans les tuiles. Le informations définissant les styles sont stockées et gérées dans un fichier JSON séparé. Cette caractéristique permet aux utilisateurs des applications de définir des styles de manière dynamique car ce sont les applications qui gèrent les styles. De plus, lorsque le style des données change il n'est pas nécéssaire de générer des nouvelles tuiles.
Les tuiles peuvent être créées à l'avance et mises en cache, la réponse du serveur étant beaucoup plus rapide face aux requêtes de l'application cartographique web ce qui donne un rendu très fluide et performant. De plus les tuiles peuvent être utilisées avec WebGL pour obtenir un rendu fluide et performant surtout en 3D.
Un projet JMap génère trois ensembles de données qui sont utilisées par les applications :
1 fichier JSON de style. Ce fichier accompagne les tuiles vectorielles. Il contient la définition de chaque couche contenue dans les tuiles vectorielles, leurs paramètres de style, les thématiques, etc.
Un ensemble de tuiles vectorielles qui contiennent les géométries et les attributs des couches non éditables. JMap produit un fichier de format mvt par tuile. Ces tuiles peuvent être créées à la demande lorsque les utilisateurs naviguent dans les applications JMap Survey ou JMap NG. Elles peuvent aussi être crées à l'avance et mises en cache. Cet article offre des détails sur la procédure pour produire et gérer le cache des tuiles avec JMap.
Données vectorielles en GeoJSON qui correspondent aux géométries et attributs des couches éditables. Ces données sont envoyées aux applications à la demande par région.
Que les tuiles soient créés à la demande ou à l'avance et mises en cache, elles sont créées dans le répertoire cache/mapbox de JMap Server. Dans ce répertoire il y a un dossier par projet (nommé avec l'identifiant du projet) qui contient un dossier par résolution (actuellement 512). Les fichiers des tuiles sont nommés suivant le code z-x-y.mvt où z est le niveau d'échelle, x et y indiquent la position de la tuile dans la grille.
En général les tuiles vectorielles sont plus légères que les tuiles matricielles mais certains facteurs peuvent affecter la taille des tuiles et avoir un impact sur la performance des applications JMap Survey et JMap NG. La taille des tuiles est associée au temps de leur production, au volume de stockage, au volume des données échangées avec les applications et à la mémoire dédiée des applications.
Des facteurs à considérer :
Nombre d'attributs liés aux couches : les données des attributs influencent la taille des tuiles, qui augmente lorsque le nombre d'attributs augmente.
Échelles de visibilité des couches : établir des seuils de visibilité pour l'affichage des couches est indiqué lorsque les couches ont des données très denses. Limiter l'affichage de ces couches à des échelles plus grandes est une bonne stratégie car les tuiles des petites échelles ne contiendront pas les données de ces couches et le temps de production des tuiles sera réduit.
Mise en cache : la production à l'avance et mise en cache des tuiles améliore grandement la performance des applications et allège la charge de travail de JMap Server qui peut devenir saturé lorsque plusieurs utilisateurs naviguent des applications de projets très grands et complexes.
Mémoire du serveur JMap Server : influence la performance de la production des tuiles. Augmenter la mémoire allouée au serveur JMap Server peut accélérer la production des tuiles.