IGNF / geotuileur-site

Portail web dédié à la publication de données sous forme de tuiles vectorielles
https://ignf.github.io/geotuileur-site
GNU Affero General Public License v3.0
9 stars 0 forks source link

Perte des couleurs et filtrage des niveaux de zoom à l'import d'un style QML #76

Open IGNF-Xavier opened 2 years ago

IGNF-Xavier commented 2 years ago

Description de l'anomalie presc_surf.zip Sur les données ci-jointes transformées en tuiles vectorielles : https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/prescription_surf/{z}/{x}/{y}.pbf l'import du qml (lui aussi dans le zip crée un Json Mapbox qui n'est pas appliqué au flux de tuiles vectorielles : https://geoservices-geotuileur.ccs-ign-plage.ccs.cegedim.cloud/annexes/recette/datastores/6239e1402d0a195bc96053de/626911a7f3989af89750b8b3/styles/mapbox-628749bdac418.json

Par ailleurs en regardant le json, il indique beaucoup de représentations en couleur #808080 (gris), ce qui n'est pas bon.

slafayIGN commented 2 years ago

Le style créé est bien applicable et appliqué aux tuiles vectorielles mais la transformation n'a pas fonctionné notamment pour la récupération des couleurs. Tous les objets sont gris. L'investigation est en cours.

La conversion du style soulève aussi la question des niveaux de zoom. Les niveaux dans le style ne correspondent pas aux niveaux de la pyramide. Par exemple c'est dommage d'avoir généré un niveau 12, si on applique un style qui ne représente pas les objets avant le niveau 15.... Mais comment savoir si ce choix est intentionnel ou non ?

slafayIGN commented 2 years ago

La reproduction de cette issue est retardée par #68 non élucidée, car les données en exemple produisent souvent une pyramide presque vide.

slafayIGN commented 2 years ago

Le style QML des données d'urbanisme est très particulier.

Ce qui ressemble à un remplissage simple est en fait composé de 2 éléments :

image

En QML ça donne un symbole de type fill dans lequel on a 2 layers SimpleLine et SimpleFill.

Le parser qml geostyler ne s'attend pas à trouver une SimpleLine dans un symbole de type fill et il ne voit donc pas la propriété line_color. Il s'attendrait à la place à trouver un SimpleFill avec une outline_color.

2ème problème, Geostyler ne voit pas l'intérêt de définir un style "Pas de remplissage" et ne voit pas la propriété <prop k="style" v="no"/>. Et concrètement le layer SimpleFill ne sert à rien si c'est pour le désactiver.

Un symbole équivalent fonctionnel serait un remplissage simple avec une couleur de trait rouge et une couleur de remplissage quelconque avec une opacité à 0%.

image


Les tests avec l'API REST Geostyler nous ont permis par ailleurs d'identifier que l'épaisseur du contour (<prop k="outline_width" v="4"/>) n'est pas exporté en style MapBox (alors qu'elle l'est en stroke-width en SLD)