Web portal dedicated to the publication of data in the form of vector tiles

Overview

Géotuileur

License: AGPL-3.0

Ce projet constitue un portail web pour l'API entrepôt dédié à la publication de données sous forme de tuiles vectorielles.

Ce dépôt ne contient que le code source du portail et ne contient pas le code de l'API entrepôt.

Ce code est sous licence Affero GPL v3.0.

Fonctionnalités clés

  • Accès aux Espaces de travail (datastores) de l'utilisateur
  • Livraison de données vecteur (uploads) et intégration en base de données (stored_data de type VECTOR-DB)
  • Génération de pyramide de tuiles vectorielles (stored_data de type ROK4-PYRAMID-VECTOR) avec possibilité de générer des échantillons (pyramide sur une emprise géographique limitée plutôt que sur toute l'étendue des données)
  • Choix de plusieurs paramétrages de généralisation préconfigurés (l'API utilise le logiciel Tippecanoe pour effectuer la génération des tuiles)
  • Publication de pyramides de tuiles vectorielles sous forme de flux TMS (configurations et offerings) avec aide au partage de ces flux
  • Personnalisation du rendu des flux avec un système de gestion de styles (rendus publics via le système d'annexes de l'API)
  • Visualisation des travaux en cours et des flux publiés et gestion de l'espace de stockage.

Utilisation

La documentation utilisateur se trouvant dans docs/user constitue la rubrique d'aide en ligne déployée avec le site et mise en forme avec docsify.

Documentation développeur

Voir la documentation développeur.

Comments
  • visualiser l'échantillon/la donnée échoue lors qu'un attribut contient des accents ?

    visualiser l'échantillon/la donnée échoue lors qu'un attribut contient des accents ?

    Description de l'anomalie

    l'ajout du flux https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/sample_7s1680pm9y0h0ps7 s'est mal passé. l'ajout du flux https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/CRAIG_MOS_GRAND_CLERMONT_2020 s'est mal passé.

    Etapes pour reproduire

    Décrivez pas à pas comment reproduire ce comportement :

    1. récupérer https://ids.craig.fr/geocat/srv/api/records/e7dae1e7-aadb-4f8a-bc9d-98464469cdcd/attachments/CRAIG_MOS_GRAND_CLERMONT_2020.zip
    2. décompresser, créer un .cpg avec 'latin1' pour qu'ogr2ogr connaisse l'encodage
    echo 'latin1' > CRAIG_MOS_GRAND_CLERMONT_2020.cpg
    
    1. convertir en geopackage
    ogr2ogr CRAIG_MOS_GRAND_CLERMONT_2020.gpkg CRAIG_MOS_GRAND_CLERMONT_2020.shp
    

    importer les données, l'import se passe bien, la génération d'un échantillon (ex faire recherche sur commune aubière) se passe bien, la visualisation de l'échantillon échoue, la génération des tuiles se passe bien, la publication aussi, la visualisation des données échoue.

    les 2 couches (échantillon et finales) n'existent pas dans le service: https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/CRAIG_MOS_GRAND_CLERMONT_2020

    <ExceptionReport>
    <Exception exceptionCode="InvalidParameterValue"> Layer CRAIG_MOS_GRAND_CLERMONT_2020 inconnu. </Exception>
    </ExceptionReport>
    

    Vais faire un second test en supprimant la colonne avec des valeurs accentuées.

    opened by landryb 6
  • Expérimenter avec MapLibre GL

    Expérimenter avec MapLibre GL

    Toutes les cartes du portail Géotuileur sont affichées avec OpenLayers.

    Il existe cependant une bibliothèque de rendu cartographique plus nativement adaptée aux tuiles vectorielles : maplibre/maplibre-gl-js

    Il est possible qu'elle permette un gain en performance d'affichage et une meilleure fidélité du rendu des styles puisqu'elle utilise directement le format de style Mapbox alors qu'avec OpenLayers il y a une conversion en style OpenLayers.

    A priori 2 plugins seraient à développer pour MapLibre :

    • la recherche de lieu (il en existe une qui se base sur l'API Mapbox geocoding)
    • le gestionnaire de couches (layerSwitcher)
    enhancement 
    opened by slafayIGN 5
  • Un flux dont le titre contient `&` ou `<` n'est pas visualisable

    Un flux dont le titre contient `&` ou `<` n'est pas visualisable

    Description de l'anomalie

    J'ai publié, j'arrive à l'interface de visualisation puis d'dition du style et je n'ai pas les données mais le message suivant : "l'ajout du flux https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/Bureaux_vote s'est mal passé."

    image

    https://qlf-portail-gpf-beta.ign.fr/datastores/6239e1402d0a195bc96053de/pyramid/6245bc2bf3989a6e043b606a/share

    :bug: bug 
    opened by IGNF-Xavier 5
  • generateur d'iframe comme lien public vers la carte fonctionnent-t-ils?

    generateur d'iframe comme lien public vers la carte fonctionnent-t-ils?

    Description de l'anomalie

    Sur ce jeu de données : https://qlf-portail-gpf-beta.ign.fr/datastores/62287053b579ed604ad7f584/pyramid/6238646d4506ef29932a3974/share

    En intégrant le code iframe proposé : <iframe width="600" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" sandbox="allow-forms allow-scripts allow-same-origin" src="http://qlf-portail-gpf-beta.ign.fr/viewer?tiles_url=https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/communes_1_BV"></iframe>

    dans ce visualisateur : https://codepen.io/wendee/pen/AePOYE

    Jai le résultat suivant : image

    qui ne centre pas au bon endroit et ne montre pas la couche de tuiles vectorielles.

    Est-ce lié au fait qu'on soit en qualif ?

    :bug: bug :scroll: documentation 
    opened by IGNF-Xavier 4
  • Problème import des données plug-in QGIS geotuileur

    Problème import des données plug-in QGIS geotuileur

    Description de l'anomalie

    Lors de l'import de données en format geopackage dans le plugin QGIS, l'intégration de données vecteur livrées en base ne fonctionne pas.

    Etapes pour reproduire

    Décrivez pas à pas comment reproduire ce comportement :

    1. Aller à la fonction "Upload creation" du plugin Qgis Geotuileur devellopé en ce moment par Oslandia.
    2. Ajouter les données en format geopackage avec la projection correcte.

    Comportement attendu

    Les données utilisées permettent de créer un flux facilement en utilisant l'interface web du Geotuileur. Le flux devrait être créé et apparaitre dans l'espace de travail choisi.

    Copies d'écran

    image

    :bug: bug 
    opened by tomalary 3
  • Carto d'un flux publié : décalage entre l'objet cliqué et la fenêtre Pop-up

    Carto d'un flux publié : décalage entre l'objet cliqué et la fenêtre Pop-up

    Description de l'anomalie

    Sur la carto de n'importe quel flux publié, on note un décalage important entre l'objet cliqué et la fenêtre pop-up affichant les attributs (voir capture 1).

    Etapes pour reproduire

    Décrivez pas à pas comment reproduire ce comportement :

    1. Se rendre sur un espace de travail contenant des flux publiés.
    2. Cliquer sur le bouton 'Voir' correspondant à un flux publié
    3. Sélectionner un objet sur la carto, la fenêtre pop-up s'affichera de manière très décalée

    Copies d'écran

    Capture 1: image

    :bug: bug 
    opened by VDizierIGN 3
  • Petites anomalies avec la carto de visualisation des échantillons

    Petites anomalies avec la carto de visualisation des échantillons

    Description de l'anomalie

    Après avoir créé un flux en échantillon, je clique sur Visualiser afin d'afficher la carto. (capture 1) La cartographie s'ouvre à petite échelle, très loin de la zone d’échantillonnage. Cela pourrait être fastidieux pour l'utilisateur de se repérer et de retrouver les échantillons sur la carte. (capture 2) Dans cette même carto, il y a aussi très net décalage entre l’échantillon sur lequel on clique et la position de la fenêtre Pop-up. (capture 3)

    Etapes pour reproduire

    Décrivez pas à pas comment reproduire ce comportement :

    1. Aller à '...'
    2. Cliquer sur 'Commencer'
    3. Sélectionner un espace de travail (j'ai utilisé l'espace Recette)
    4. Cliquer sur 'Créer un nouveau flux'
    5. Déposer un fichier et valider
    6. Poursuivre à l'étape 2 en sélectionnant l'option 'générer un échantillon'
    7. Retrouver l'échantillon dans 'Mes actions à terminer' et cliquer sur visualiser

    Comportement attendu

    La carto devrait être centrée sur la zone d'échantillonnage et la fenêtre Pop-up apparaître proche des objets sur lesquels on clique.

    Copies d'écran

    Capture 1: image Capture 2: image Capture 3: image

    :bug: bug 
    opened by VDizierIGN 3
  • Problème de génération d'échantillon

    Problème de génération d'échantillon

    Description de l'anomalie

    Impossible d'accéder au flux https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/sample_1skd5jdyqs231m1a. Existe-t-il ? Message reçu lors de la visualisation de l'échantillon de la ressource arbres gpkg 2022-05-20 Page concernée : https://qlf-portail-gpf-beta.ign.fr/datastores/6239e1402d0a195bc96053de/pyramid/62872aef001daebf1bf5601a/sample-check

    Rapport disponible à cette adresse : https://qlf-portail-gpf-beta.ign.fr/datastores/6239e1402d0a195bc96053de/stored_data/62872aef001daebf1bf5601a/report

    D'ailleurs sur le rapport, on voit l'emprise des données mais pas le fonds de plan IGN V2. Le WXS : https://wxs.ign.fr/cartes/geoportail/wmts?layer=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix=19&TileCol=262144&TileRow=262143 indique not found

    Mes données sont bien en wgs84

    arbres.zip

    :bug: bug 
    opened by IGNF-Xavier 2
  • Flux invisibles après mise à jour

    Flux invisibles après mise à jour

    Description de l'anomalie

    La mise à jour du flux ne se termine pas

    Etapes pour reproduire

    Je crée un flux avec le fichier posté sur Teams ce matin (communes du 94) Je supprime 2 communes dans QGIS et je crée un nouveau gpkg que je charge et avec lequel je lance la mise à jour du flux L'étape 1 semble se dérouler correctement avec un validation des 4 items mais le traitement reste à "en cours" (1) Je sors du menu via le retour au tableau de bord où je constate que j'ai une action à terminer Je clique sur "visualiser". Je tombe sur deux cartes synchronisées, la première avec le flux initial et la seconde avec le nouveau flux mais celui-ci est invisible (2) Je valide la nouvelle version et j'obtiens une carte avec 2 couches mais rien de visible : http://qlf-portail-gpf-beta.ign.fr/viewer?tiles_url=https://qlf-vt-gpf-beta.ign.fr/tms/1.0.0/Communes94 (3)

    Comportement attendu

    (1) Passer à l'étape suivante automatiquement (2) Voir le nouveau flux (3) Voir le flux mis à jour

    Copies d'écran

    arret-MaJ

    carte-vide

    Autres informations de contexte

    W10, Opera

    :bug: bug 
    opened by PhilippeMarc-IGN 2
  • Fonctionnement des dépliage/repliage de table dans le formulaire de composition de la pyramide

    Fonctionnement des dépliage/repliage de table dans le formulaire de composition de la pyramide

    Le besoin que vous rencontrez

    Quand on clique sur table suivante, on a bien la table précédente qui se replie.

    La solution que vous aimeriez

    Quand on va directement sur la table suivante, ne devrait-on pas avoir aussi la table qui se replie ?t

    enhancement question 
    opened by IGNF-Xavier 2
  • Problème cosmetique

    Problème cosmetique

    Description de l'anomalie

    l'adresse de superpose avec le texte " aperçu de l'adresse finale dans firefox

    image

    https://qlf-portail-gpf-beta.ign.fr/datastores/62287053b579ed604ad7f584/pyramid/6238646d4506ef29932a3974/publish

    Sur les mots clés aussi, il y a un souci image

    :bug: bug 
    opened by IGNF-Xavier 2
  • Supprimer les fichiers non acceptés par l'API des livraisons

    Supprimer les fichiers non acceptés par l'API des livraisons

    Le Géotuileur vérifie actuellement le contenu du fichier zip téléversé avant de soumettre la livraison et le considère valide lorsqu'il contient au moins un geopackage ou un fichier CSV.

    Les autres fichiers éventuellement présents (pdf, xml, txt...) sont conservés dans l'archive envoyée à l'API Entrepôt.

    Seulement, l'API signale la présence de ces fichiers comme une erreur.

    Comme ils n'ont aucun intérêt pour les traitements suivants, peut-être vaut il mieux les supprimer automatiquement de l'archive avant de la livrer à l'API. (option 1)

    L'autre option (2) serait que l'API ne signale pas ces fichiers comme des erreurs.

    Des avis sur la question sont bienvenus @IGNF-Xavier, @Dolite

    enhancement question 
    opened by slafayIGN 0
  • Distinguer son propre espace de test de celui des autres (mes espaces de travail)

    Distinguer son propre espace de test de celui des autres (mes espaces de travail)

    Quand un utilisateur est membre de plusieurs espaces de travail "Bac à sable", le sien et celui d'autres personnes, alors dans la liste de ses espaces de travail, ce n'est pas toujours le sien qui est identifié comme l'espace de test.

    Pour rappel cette page présente chaque espace de travail dans une vignette qui a pour nom "Accédez à votre espace de travail Nom" et avec un traitement à part pour l'espace de test où la vignette porte le nom "Testez le service sur l'espace de test" au lieu de "Accédez à votre espace de travail Bac à sable".

    Puisque les espaces de test portent tous le même nom, il faudra également un moyen de les distinguer sur cette page, à l'instar de ce qui est prévu pour la page Mon compte (#114)

    enhancement 
    opened by slafayIGN 0
  • Afficher le nom des superviseurs des espaces de travail (mon compte)

    Afficher le nom des superviseurs des espaces de travail (mon compte)

    Suite à #110 , un utilisateur peut se retrouver membre de plusieurs espaces de test (un espace de test = une communauté et un entrepôt). Or ils portent tous le même nom "Bac à sable" et dans la liste des espaces de travail de la page "Mon compte" rien ne permet de les distinguer.

    Il faudrait afficher le superviseur à côté du nom pour les distinguer. Par exemple :

    • avec la formulation "Bac à sable de Prénom Nom" qui requiert un traitement particulier pour ne pas l'écrire pour toutes les communautés,
    • ou alors pour toutes les communautés sans distinction afficher : "Nom de l'espace de travail (superviseur : Prénom Nom)"
    enhancement 
    opened by slafayIGN 0
  • Intégration de Geostyler : interface d'édition de style

    Intégration de Geostyler : interface d'édition de style

    Première proposition d'intégration de Geostyler sur le Géotuileur (refs #4) :

    • [x] visualisation du style en édition via l'interface Geostyler sur la carte en direct
    • [x] modification de style existant (déjà enregistré au format Mapbox dans l'API) et enregistrement des modifications
    • [x] création d'un nouveau style (à partir du zéro) et enregistrement dans l'API au format Mapbox
    • [x] import de fichier de style existant (SLD, Mapbox, QML) et puis modification
    • [ ] synchroniser la liste de styles StylesList et l'interface Geostyler
    • [ ] faire un effort pour rapprocher le style des composants antd à celui de l'IGN
    • [ ] compléter les traductions FR manquantes sur l'interface de Geostyler
    • [ ] résoudre le souci de synchronisation pour CardStyle dans certains cas (mauvaise utilisation de react state ?)
    • [ ] revoir la qualité de code avant de merge la PR

    Quelques tâches connexes :

    • [ ] enlever ol-mapbox-style et toutes ses références dans la doc qui n'est plus utilisé
    opened by ocruze 0
  • Usage du Géotuileur sur Safari 16.1 impossible en cas de bloqueur de popup actif

    Usage du Géotuileur sur Safari 16.1 impossible en cas de bloqueur de popup actif

    Dans l'étape2 "Créer le flux", le clic sur bouton "Valider" est sans effet sir le bloqueur de popup est actif

    Etapes pour reproduire

    Utiliser le Geotuileur sur Mac Os avec le navigateur Safari (versions testées : Mac OS Ventura 13.0 et safari 16.1)

    1. Configurer un nouveau flux
    2. Suivre le workflow jusqu'à l'étape 2 "Créer le flux"
    3. Renseigner les infos demandées dans l’interface
    4. Cliquer sur Valider

    A ce stade rien ne se passe

    Un tour dans les outils de développement du navigateur donne cette erreur [Error] TypeError: undefined is not an object (evaluating 'this._map1.getLayers().getArray()[0].changed')

    En essayant de résoudre ça par des méthodes simples, il s'avère que le déblocage des popup dans les paramètres du navigateur permet de retrouver un fonctionnement normal

    :bug: bug 
    opened by NicoLeclercIGN 2
Releases(v0.5.0)
  • v0.5.0(Jan 5, 2023)

    • Ajout de fonctionnalités de gestion des membres des communautés (ajout ou suppression) pour les utilisateurs disposant du niveau d'accès suffisant (#110)
    • Correction d'un message d'erreur qui ne précisait pas l'unité d'un volume limite (#112)

    Full Changelog: https://github.com/IGNF/geotuileur-site/compare/v0.4.0...v0.5.0

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Nov 15, 2022)

    • remplacement de symfony/swiftmailer-bundle par symfony/mailer (#16) (attention des éléments du .env changent)
    • rafraichissement des indicateurs d'usage des stockages à chaque action utilisateur (#88)
    • mécanisme de login dans un nouvel onglet si la session expire pendant une opération (#41)
    • correction d'un message d'erreur (#103)
    • nombreuses mises à niveau et correction de dépréciations suite au passage à Symfony 5
    • nouvelle doc développeur concernant les styles /docs/developer/style.md

    Full Changelog: https://github.com/IGNF/geotuileur-site/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Oct 5, 2022)

    • Ajoute une page concernant le plugin QGIS (#101)
    • Correction pour usage effectif du nom saisi dans le formulaire de génération d'une pyramide (#100)
    • Passe de Symfony 4.4 LTS à Symfony 5.5 LTS sans changement fonctionnel (#86)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Sep 22, 2022)

    • Corrige la façon dont est géré l'examen des échantillons avant choix de reprendre la configuration ou de continuer #80
    • Corrige un bug permettant l'accès au formulaire de configuration d'une pyramide alors que base de données n'a pas d'emprise #87
    • Ajoute une précision dans la doc utilisateur sur le dysfonctionnement avec les CSV non zippés
    • Corrige une erreur dans la doc développeur sur les tags portés par une stored_data publiée
    • Initialise une configuration Cypress pour tests en environnement de développement
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Jun 2, 2022)

Owner
Institut National de l'Information Géographique et Forestière
Accompagne les politiques publiques en produisant des bases de données d’information géographique et des outils numériques. @iTowns, @rok4, @micmacign ...
Institut National de l'Information Géographique et Forestière
Dedicated plugin for PocketMine-API 4, this will help staff members to make players follow the rules to the letter

StaffMode Dedicated plugin for PocketMine-API 4, this will help staff members to make players follow the rules to the letter Annotation This plugin is

Kurth 3 Aug 12, 2022
This is a simple PHP Student Portal. You can login, logout, register, and view your details.

Student-Portal This is a simple PHP Student Portal with a MySQL Database. I made this as part of a university assignment, so you can login, logout, re

Christine Coomans 3 Feb 12, 2022
The Laravel.io Community Portal.

Laravel.io This is the repository for the Laravel.io community portal. The code is entirely open source and licensed under the MIT license. We welcome

Laravel.io 2.2k Dec 23, 2022
CaraCracha - a captive portal project made for ISPs on my old city

CaraCracha - a captive portal project made for ISPs on my old city, Sobradinho, state of Bahia, Brazil. I found its code recently and hope it could be useful for someone.

Laudivan Freire de Almeida 2 Mar 9, 2022
Raspberry Pi wifi hotspot with an offline-first community portal. Optionally shares internet access over Tor.

Raspberry Pi wifi hotspot with an offline-first community portal. Optionally shares internet access over Tor.

Martti Malmi 17 Dec 15, 2022
Melek Berita Backend is a service for crawling data from various websites and processing the data to be used for news data needs.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Chacha Nurholis 2 Oct 9, 2022
KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

KodExplorer is a file manager for web. It is also a web code editor, which allows you to develop websites directly within the web browser.

warlee 5.5k Feb 10, 2022
A non-intrusive support form that can be displayed on any page

A non-intrusive support bubble that can be displayed on any page Using this package you can quickly add a chat bubble that opens a support form on any

Spatie 288 Dec 28, 2022
[virion] It Implements Simple Using Form Library System

SimpleForm [virion] It Implements Simple Using Form Library System How To Use First, declare the use statement. use AidenKR\SimpleForm\SimpleForm; use

Aiden 2 Sep 18, 2021
Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X)

IbexaHoneypot Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X) What is Honey pot? A honey pot trap involves

null 1 Oct 14, 2021
Simple Form By Using ⇒ PHP - MSQL - AJAX

php-form Simple Form By Using PHP - MYSQL - AJAX Demo: http://php-form.ga/ How To Use Download XAMPP from https://www.apachefriends.org/download.html

Areeb Ghani 1 Oct 23, 2021
Simple Form By Using ⇒ PHP - MSQL - AJAX

php-form-2 Simple Form By Using PHP - MYSQL - AJAX Demo: http://php-form.ga/ How To Use Download XAMPP from https://www.apachefriends.org/download.htm

Areeb Ghani 1 Oct 24, 2021
A robust and flexible way to add double-opt-in (DOI) to any form in Mautic

Mautic double-opt-in (DOI) plugin Adds a robust and flexible way to add a double-opt-in process (DOI) to any form in Mautic. What is the plugin for? I

Content Optimizer GmbH 11 Dec 29, 2022
Basic User login & signup in php with JavaScript form validations

User login & signup in php User login & signup in PHP-MySQL with JavaScript form validations Project Details : Project Name : User Registration & Logi

Swapnil Zambare 2 Sep 30, 2022
Zem contact reborn - An extensible HTML form mailer plugin for Textpattern CMS.

com_connect Contents Introduction Installing and upgrading Migrating from zem_contact_reborn Usage Tags com_connect tag com_connect_text tag com_conne

Textpattern CMS 23 Dec 8, 2021
All about docker projects either from dockerfile or compose. Anyway, here the project is in the form of a service, for the programming language I will make it later

Docker Project by ItsArul Hey, yo guys okay, this time I made some projects from Docker. Anyway, this project is open source, for example, if you want

Kiyo 10 Nov 4, 2022
Read and show values from form valid

read-and-show-values-from-form-valid Escribe un programa PHP que permita al usuario rellenar un formulario de registro con los datos de nombre, contra

ManuMT 1 Jan 21, 2022
A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.

select2entity-bundle Introduction This is a Symfony bundle which enables the popular Select2 component to be used as a drop-in replacement for a stand

Ross Keatinge 214 Nov 21, 2022
An online system to keep digitized form of employee personal files (staff personal files)

An online system to keep digitized form of employee personal files (staff personal files).

p r o c e s s o r 2 Jun 18, 2022