Contexte
Faire des cartes dans Superset est tout un art. C'est le mélange entre géomatique et administration de base de données. Ce guide a pour objectif d'expliquer la méthode pour créer des Geojson valides pour Superset avec un environnement DataBFC.
A la fin de ce guide, vous aurez les méthodes et le code pour créer des Geojson pour Superset à partir de données géographique, et ainsi mettre des cartes interactives dans vos dashboard Superset.
Si vous avez une couche de Points, avec deux colonnes distinctes lat-long, ou x-y, vous pouvez cartographier vos points directement avec Superset et le Graphique "ScatterPlot".
Si vous souhaitez cartographier des Polygones, des Lignes ou même des Points avec une géométrie au format WKT ou WKB, alors ce guide est fait pour vous.
Pré-requis logiciels
- QGIS
- Un compte pgAdmin lié à votre base de données "espace_de_travail" (ou "workspace") dans DataBFC
- Un compte Superset
Par défaut - Utiliser QGIS et PgAdmin pour intégrer des données dans la BDD
Exporter les données de QGIS vers un fichier .SQL
Choisir une couche dans un projet QGIS.
Exporter la couche issue de la jointure et la couche des département au format SQL afin de pouvoir les importer en bases de données. Le processus suivant va vous créer un fichier texte en .SQL que vous copierais plus tard dans la console pgadmin.
Pour ce faire, effectuer un clic droit sur la couche, puis cliquer sur "Exporter"->"Sauvegarder les entités sous"

Par défaut, les commandes du fichiers seront écrites en faisant référence au schéma "public". Si vous souhaitez les inclure dans un autre schéma ("cop", "dreal", "ofer-bfc" ou autre), il existe une case "SCHEMA" dans la fenêtre d'export qui vous permet de le changer. Cliquer sur CREATE_SCHEMA = NO puis définir le SCHEMA en écrivant son nom dans la case correspondante.

Importer des données dans pgadmin en collant le contenu du fichier .SQL
Connectez vous à pgadmin fourni par DataBFC, puis à la base de données espace de travail. Si vous ne retrouvez pas vos identifiants, vous pouvez contacter l'équipe DataBFC via un ticket ou grâce au support de l'ARNIA.

1 et 2) Ouvrir un nouvel onglet de Query Tool (outil pour exécuter des requêtes SQL)
3) Ouvrir avec un éditeur de texte (de préférence Notepad++) un script SQL créer par QGIS puis coller le script dans le Query Tool
4) Exécuter le script SQL pour importer les données.

5) Utiliser la requête SQL suivante pour donner accès à Superset à votre jeu de données nouvellement créer :
GRANT SELECT ON TABLE schema.table TO workspace ;
-- workspace est l'utilisateur de superset par défaut dans DataBFCBase de données ouvertes - Utiliser le DataBase Manager de QGIS pour intégrer des données
Pré-requis base de données
Si vous avez réaliser les étapes précédentes, alors vous pouvez directement passer à la partie Créer du Geojson
Il faut que votre base de données "espace_de_travail" soit ouvertes à votre client QGIS. Si vous souhaitez connecter votre QGIS à votre base de données, consulter ce guide Connecter QGIS à sa base de données DataBFC.
Une fois connecté à la base de données avec QGIS, se rendre dans le Gestionnaire de Base de données QGIS :

Se rendre dans la base de données de votre choix, et choisir le schéma d'import (ici la BDD est cop_data_bfc et le schéma est "cop"):

Cliquer sur "Import de couche/fichier", puis remplir le formulaire d'import.
Pour des question de performances, je recommande de cocher la case clé Primaire, ce qui créera un index sur votre table et permettra au requête d'être plus rapide. Je recommande également de créer un index spatial.
Le formulaire est pré-rempli par défaut, et les cases qui ne sont pas cochés possèdent des valeurs par défaut. Exemple : Ne pas cocher les cases de SCR si vous ne souhaitez pas changer de SCR et que les valeurs vous conviennent. Seul contre-exemple est le SCR IGNF-RG93 alors prendre transformer en SCR 3857 soit 2154.

Si cette fenêtre s'affiche , alors l'import est réussi :
Créer les géométries en Geojson
Copier le script SQL en annexe de cette documentation dans pgadmin et l'executer.
Faire attention au schéma dans lequel la fonction va être créer, par défaut la fonction va être créer dans "public". Si vous souhaitez changer ce comportement, il faut changer la première ligne du script en annexe en remplaçant "public" par "nom_de_votre_schéma" .
Vérifier que la fonction est bien dans votre schéma grâce à l'interface graphique de pgadmin :
Ce script créer une Fonction Postgresql qui permettra de créer une colonnes de géométries geojson à partir d'une colonne géométries WKT / WKB et d'un SRID.

- Executer la fonction avec les paramètres correspondants à votre schéma, votre couche et vos colonnes
Voici un exemple :
SELECT demo_carto.add_geojson_column_with_srid_transform(
'demo_carto', --schéma
'test_sql', --table à traiter
'ogc_fid', --colonne id
'wkb_geometry', --colonne de la géométrie
'geom_4326_dep', --colonne de géométrie reprojetée créer automatiquement par la fonction
'geojson_dep', --colonne de geojson créer automatiquement par la fonction
4326 --INTEGER du système de projection à utiliser
) Après une exécution correcte de cette fonction, votre table doit comporter deux nouvelles colonnes : votre colonne de géométrie reprojeté et votre colonne de géométrie en GeoJSON.

Une fois que votre colonne geojson est prête, vous pouvez créer une carte dans Superset.