Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recette #54 (et sous tickets) : widget d'import de données #365

Closed
elias75015 opened this issue Nov 4, 2024 · 26 comments
Closed

Recette #54 (et sous tickets) : widget d'import de données #365

elias75015 opened this issue Nov 4, 2024 · 26 comments
Assignees
Labels
recette Tickets réalisés par les recetteurs

Comments

@elias75015
Copy link
Contributor

elias75015 commented Nov 4, 2024

Recette #54 : ajout du widget d'import de données et services

@elias75015 elias75015 added the recette Tickets réalisés par les recetteurs label Nov 4, 2024
@IGNF-Xavier
Copy link

IGNF-Xavier commented Nov 5, 2024

#122 : NOn bloquant - ce n'est plus le positionnement et le comportement décrit. C'est désormais un bouton.
#123 : Non bloquant - il n'y a pas de drag&drop pour l'import
#124 :

Autres bugs :

  • ❌ Mineur, le passage en URL renvoie une modale rétrécie avec ascenseur
    image
  • ❌ Mineur - le formulaire d'import n'est pas réinitialisé en cas de nouvel import.
  • ❌ Mineur - l'import de couches par lien OWS renvoie une nouvelle modale avec la liste des couches disponibles. Modale trop petite
    image
  • ❌ Mineur- L'import de données TMS engage une couche en non visible. La mettre en visible
  • ❌ Majeur- Suite au premier import de TMS, l'utilisation du bouton import renvoie une modale vide :
    image

@elias75015
Copy link
Contributor Author

Pour le KML qui ne fonctionne pas, c'est à investiguer : celui-ci ne fonctionne pas certainement à cause de son formatage. Je crée un ticket pour vérifier : IGNF/geopf-extensions-openlayers#242

Pour le drag & drop, je crée un ticket d'évolution côté extension, non prioritaire je pense, mais pour garder la chose en tête : IGNF/geopf-extensions-openlayers#243

@elias75015
Copy link
Contributor Author

En fait, le drag & drop fonctionne, car le bouton d'upload est natif au navigateur.
Capture vidéo du 06-11-2024 19:19:07.webm

Ne serait-ce pas lié à cette dianblerie d'Edge encore une fois ?

@elias75015
Copy link
Contributor Author

Pour les autres remontées, à vérifier, j'en appelle aux collègues @IGNF/cartes-gouv-entree-carto

@lowzonenose lowzonenose self-assigned this Nov 7, 2024
@elias75015
Copy link
Contributor Author

IGNF/geopf-extensions-openlayers#242 fermé : problème du KML, il manquait le namespace atom en entête.

On l'a importé dans googleearth, réexporté, et le namespace était bien présent, l'import s'est donc bien passé.

@elias75015
Copy link
Contributor Author

On essaye de tout vérifier d'ici la semaine prochaine sur ce widget : si d'ici mercredi on réussi à corriger les points majeurs, on l'intègre à la livraison.
Sinon on a déjà une PR faite par Hector pour le désactiver

@IGNF-Xavier
Copy link

IGNF-Xavier commented Nov 7, 2024 via email

@lowzonenose
Copy link
Contributor

Majeur Geojson ne fonctionne pas à partir du fichier enregistré au format geojson depuis :https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1

Le Geojson est mal construit : Les géométries ne peuvent pas être null !
image

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

Majeur - TMS le JSON est pris en charge pour l'accès aux données mais la symbologie n'est pas appliquée. Exemple : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

Le sprite est renseigné mais le path n'est pas correct, ceci va lancer une exception.
image

Il vaut mieux virer le sprite pour éviter toutes exceptions (idem pour les glyphs).

De plus, le service tuilé n'affiche pas de tuiles
image

Le fournisseur doit implémenter les sprites et glyphs

@IGNF-Xavier
Copy link

Majeur - TMS le JSON est pris en charge pour l'accès aux données mais la symbologie n'est pas appliquée. Exemple : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

Le sprite est renseigné mais le path n'est pas correct, ceci va lancer une exception. image

Il vaut mieux virer le sprite pour éviter toutes exceptions (idem pour les glyphs).

De plus, le service tuilé n'affiche pas de tuiles image

@slafayIGN il y a probablement un souci avec le json que l'on produit depuis cartes.gouv/alimentation-diffusion

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

A investiguer - le WMTS https://geolittoral.din.developpement-durable.gouv.fr/cache/service/wmts?service=WMTS&request=GetCapabilities ne fonctionne pas (version 1.0.0) avec ou sans paramètre de requêtes. Pourtant le service existe.

Le souci est que le service distant ne possède pas les en-têtes (headers) CORS, ce qui est obligatoire pour requêter les données en Javascript
image

Si on installe un plugin CORS pour reecrire le header de la requete sur ce service, on voit que ça marche :
image

Le correctif est à mettre en place du coté du fournisseur

@IGNF-Xavier
Copy link

Majeur Geojson ne fonctionne pas à partir du fichier enregistré au format geojson depuis :https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1

Le Geojson est mal construit : Les géométries ne peuvent pas être null ! image

Il est impossible de capturer l'erreur et de la signaler ?
Il s'agit d'une donnée fournie par une plate-forme connue.
Je vais tester avec un autre Geojson

@IGNF-Xavier
Copy link

A investiguer - le WMTS https://geolittoral.din.developpement-durable.gouv.fr/cache/service/wmts?service=WMTS&request=GetCapabilities ne fonctionne pas (version 1.0.0) avec ou sans paramètre de requêtes. Pourtant le service existe.

Le souci est que le service distant ne possède pas les en-têtes (headers) CORS, ce qui est obligatoire pour requêter les données en Javascript image

Si on installe un plugin CORS pour reecrire le header de la requete sur ce service, on voit que ça marche : image

C'est une solution viable supportée par l'entree carto ou c'estun plugin du navigateur?
Dans le second cas, cela veut dire qu'il faut capturer l'erreur et la signaler

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

Majeur Geojson ne fonctionne pas à partir du fichier enregistré au format geojson depuis :https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1

Il est impossible de capturer l'erreur et de la signaler ? Il s'agit d'une donnée fournie par une plate-forme connue. Je vais tester avec un autre Geojson

Le format GeoJSON d'OpenLayers est très strict (standard), mais il est possible de rendre les erreurs silencieuses afin d'afficher uniquement les éléments correctement formatés à moindre frais dans les dev...

@elias75015 Ticket à faire au niveau des extensions (format et style) : IGNF/geopf-extensions-openlayers#251

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

A investiguer - le WMTS https://geolittoral.din.developpement-durable.gouv.fr/cache/service/wmts?service=WMTS&request=GetCapabilities ne fonctionne pas (version 1.0.0) avec ou sans paramètre de requêtes. Pourtant le service existe.

Le souci est que le service distant ne possède pas les en-têtes (headers) CORS, ce qui est obligatoire pour requêter les données en Javascript !
Si on installe un plugin CORS pour reecrire le header de la requete sur ce service, on voit que ça marche

C'est une solution viable supportée par l'entree carto ou c'estun plugin du navigateur? Dans le second cas, cela veut dire qu'il faut capturer l'erreur et la signaler

Plugin navigateur installé sur Chrome ou FireFox.
Les exceptions CORS sont difficiles à capturer programmatiquement.
Le fournisseur de service devrait savoir qu'il faut correctement positionner ses headers si il souhaite une exploitation cliente de ses données.

De plus, le service est très mal configuré, les requêtes sont en http, ce qui n'est pas très propre...
Et, enfin, difficile de faire remonter une tuile, car les valeurs ne sont pas correctement renseignées (TileMatrix=NaN)
image

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

Mineur - le formulaire d'import n'est pas réinitialisé en cas de nouvel import.

Hummm..., il manque le bouton retour (comme pour le vecteur tuilé) !
Capture d’écran du 2024-11-07 23-26-23

@elias75015 Ticket à faire au niveau des extensions : IGNF/geopf-extensions-openlayers#250

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 7, 2024

Majeur- Suite au premier import de TMS, l'utilisation du bouton import renvoie une modale vide

Ceci fait suite au commentaire : #365 (comment)
L'exception sur le sprite a causé l'affichage d'une fenêtre de résultat vide...

@lowzonenose
Copy link
Contributor

Mineur- L'import de données TMS engage une couche en non visible. La mettre en visible

Lorsque le rendu d'une couche vecteur tuilé n'est pas correct (ex. exception dans le style), on applique un style par défaut (bleu), et on rend la couche non visible.

@IGNF-Xavier
Copy link

En fait, le drag & drop fonctionne, car le bouton d'upload est natif au navigateur. Capture vidéo du 06-11-2024 19:19:07.webm

Ne serait-ce pas lié à cette dianblerie d'Edge encore une fois ?

Ok. A vérifier le comportement attendu car ce n'est pas clair qu'il y ait une zone de drag&drop

@slafayIGN
Copy link
Collaborator

Attention le composant "Ajout de fichier - Upload" du DSFR est en effet le composant natif des navigateurs. Donc le comportement peut légèrement différer d'un navigateur à l'autre (pas de drag and drop sur certains) et il n'est pas personnalisable.

Ce qui est obligatoire par contre c'est de mentionner le type de fichier et le poids maximum du fichier qu'il est possible de téléverser.

@quentinpage
Copy link

pour firefox
kml ok
gpx ok
geojson ok
nok pour url : il n'y a aucune explication (il serait peut bien d'avoir une bulle ou un point d’information sur comment remplir cette outil) ni d'affichage de données pour des url qui fonctionnent (il donne des résultats dans le navigateur avec une géométrie) et qui dispose de données en xml (https://data.geopf.fr/wfs/ows?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=BDTOPO_V3:cours_d_eau) l'exemple https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1 ne marche pas non plus même si on choisis "geojson" comme type de données. l'url "https://data.geopf.fr/wfs/ows?service=WFS&version=2.0.0&request=GetFeature&outputformat=application%2Fjson&typenames=wfs_scot%3Ascot&cql_filter=title%3D%27SCOT%20DU%20PAYS%20DES%20OLONNES%27" lui fonctionne
la fenêtre "import des données" s'adapte bien.

pour edge
kml ok
gpx ok
geojson ok
nok pour url : il n'y a aucune explication (il serait peut bien d'avoir une bulle ou un point d’information sur comment remplir cette outil) ni d'affichage de données pour des url qui fonctionnent (il donne des résultats dans le navigateur avec une géométrie) et qui dispose de données en xml (https://data.geopf.fr/wfs/ows?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=BDTOPO_V3:cours_d_eau) l'exemple https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1 ne marche pas non plus même si on choisis "geojson" comme type de données. l'url "https://data.geopf.fr/wfs/ows?service=WFS&version=2.0.0&request=GetFeature&outputformat=application%2Fjson&typenames=wfs_scot%3Ascot&cql_filter=title%3D%27SCOT%20DU%20PAYS%20DES%20OLONNES%27" lui fonctionne
la fenêtre "import des données" s'adapte bien.

pour android smartphone
aucun dossier n'est stockés dans le téléphone donc pas de kml, jpx ou geojson de testable
le lien https://data.geopf.fr/wfs/ows?service=WFS&version=2.0.0&request=GetFeature&outputformat=application%2Fjson&typenames=wfs_scot%3Ascot&cql_filter=title%3D%27SCOT%20DU%20PAYS%20DES%20OLONNES%27" fonctionne. les autres liens n'ont pas été testé

@quentinpage quentinpage removed their assignment Nov 12, 2024
@IGNF-Xavier
Copy link

Majeur - TMS le JSON est pris en charge pour l'accès aux données mais la symbologie n'est pas appliquée. Exemple : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

Le sprite est renseigné mais le path n'est pas correct, ceci va lancer une exception. image
Il vaut mieux virer le sprite pour éviter toutes exceptions (idem pour les glyphs).
De plus, le service tuilé n'affiche pas de tuiles image

@slafayIGN il y a probablement un souci avec le json que l'on produit depuis cartes.gouv/alimentation-diffusion

J'ai fait sans sprite : https://data.geopf.fr/annexes/sandbox/style/8b36cb67-411b-4f7a-a5b6-6f4400ef7d02.json
Cela ne s'affiche toujours pas.
Pourtant c'est visible dans l''interface de visualisation de alimentation/diffusion

@elias75015
Copy link
Contributor Author

elias75015 commented Nov 13, 2024

Le ticket est devenu un petit peu long.

Il y a eu des corrections portées sur la page de démo :

Pour les problèmes restants et confirmés, peut-on créer des tickets à part et valider ce ticket de recette ?

Je vois uniquement le problème de l'import TMS suivant : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

est-ce bloquant ?

@elias75015
Copy link
Contributor Author

elias75015 commented Nov 13, 2024

Majeur - TMS le JSON est pris en charge pour l'accès aux données mais la symbologie n'est pas appliquée. Exemple : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

Le sprite est renseigné mais le path n'est pas correct, ceci va lancer une exception. image
Il vaut mieux virer le sprite pour éviter toutes exceptions (idem pour les glyphs).
De plus, le service tuilé n'affiche pas de tuiles image

@slafayIGN il y a probablement un souci avec le json que l'on produit depuis cartes.gouv/alimentation-diffusion

J'ai fait sans sprite : https://data.geopf.fr/annexes/sandbox/style/8b36cb67-411b-4f7a-a5b6-6f4400ef7d02.json Cela ne s'affiche toujours pas. Pourtant c'est visible dans l''interface de visualisation de alimentation/diffusion

Même sur le géoportail je ne réussis pas à visualiser.

Effectivement le path du sprite est en 404.

Puis ensuite, quand on le retire, aucune donnée n'est visible malgré des requêtes en 200 :
Image

@lowzonenose
Copy link
Contributor

lowzonenose commented Nov 14, 2024

image

Problème trouvé sur le fichier de style https://data.geopf.fr/annexes/sandbox/style/8b36cb67-411b-4f7a-a5b6-6f4400ef7d02.json :

"filter": [ "==", "class", 4] est différent de "filter": [ "==", "class", "4"]
j'ai l'impression que le comportement a changé, mapbox gère le type numeric / string dans les filtres
le champ 'class' est numérique, on doit donc mettre un filtre numérique.

@slafayIGN A toi de modifier les styles, et modifier les filtres en fonction du typage du champ requêté
image

@elias75015
Copy link
Contributor Author

Avant de fermer et d'archiver, un point sur ce qu'il restait

❌ Mineur, le passage en URL renvoie une modale rétrécie avec ascenseur

Corrigé par IGNF/geopf-extensions-openlayers#266

❌ Majeur - KML ne fonctionne pas. fichiers joints issus d'IGNRANDO parcours.zip

Expliqué par IGNF/geopf-extensions-openlayers#242

❌ Majeur Geojson ne fonctionne pas à partir du fichier enregistré au format geojson depuis :https://data.lillemetropole.fr/data/ogcapi/collections/gpu_habillage_lin/items?f=geojson&limit=-1

Contournée par IGNF/geopf-extensions-openlayers#251

❌ Majeur - TMS le JSON est pris en charge pour l'accès aux données mais la symbologie n'est pas appliquée. Exemple : https://data.geopf.fr/annexes/sandbox/style/57fde90b-d5f8-4c12-92ce-fb40e77514c7.json

Consigné côté cartes.gouv par IGNF/cartes.gouv.fr#558

❌ A investiguer - le WMTS https://geolittoral.din.developpement-durable.gouv.fr/cache/service/wmts?service=WMTS&request=GetCapabilities ne fonctionne pas (version 1.0.0) avec ou sans paramètre de requêtes. Pourtant le service existe.

Problème côté fournisseur du service : #365 (comment)

❌ Majeur- Suite au premier import de TMS, l'utilisation du bouton import renvoie une modale vide

Non reproduit, peut être corrigé

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
recette Tickets réalisés par les recetteurs
Projects
None yet
Development

No branches or pull requests

5 participants