PnX-SI / gn_mobile_occtax

Application mobile pour la saisie dans le module Occtax de GeoNature
GNU General Public License v3.0
14 stars 5 forks source link

Affichage carte ortho ign #267

Closed naidinp closed 1 week ago

naidinp commented 1 month ago

Bonjour à tous,

occtax v2.6.1.3210 geonature : 2.11.0

Depuis 2 jours nous n'arrivons plus à afficher les fond de carte ortho sur l'application mobile.

Nous avons dans backend/static/mobile/occtax/settings.json la ligne suivante :

{ "label": "IGN: ortho", "source": "https://wxs.ign.fr/ortho/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS" },

Je sais qu'il y'a eu des modification sur le site de geonature au niveau des redirections mais je ne sais pas s'il faut modifier l'url.

Avez-vous une idée ?

Merci d'avance pour votre aide.

camillemonchicourt commented 1 month ago

Non, rien à voir avec GeoNature. L'IGN a basculé les URL de ses flux carto en basculant du Geoportail à la Geoplateforme. C'est annoncé et prévu depuis plusieurs mois : https://geoservices.ign.fr/bascule-vers-la-geoplateforme A faire aussi sur GeoNature et tous vos outils qui interrogent les fonds IGN sous forme de flux.

On pourrait en effet le modifier dans les exemples de la doc : https://github.com/PnX-SI/gn_mobile_occtax/blob/master/README.md?plain=1#L54-L59

Discuté aussi côté GeoNature il y a un moment : https://github.com/PnX-SI/GeoNature/issues/2789

naidinp commented 1 month ago

j'ai modifie la source comme ceci https://data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&FORMAT=image/png"

mais impossible d'afficher le fond de carte.

Avez-vous un exemple pour m'aider ?

Merci d'avance

camillemonchicourt commented 1 month ago

Y a des exemples ici : https://github.com/PnX-SI/GeoNature/issues/2789 Sinon toutes les URL des services IGN sont présentes dans la doc IGN. Mais j'ai testé rapidos avec https://data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&STYLE=normal&FORMAT=image/png&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x} et c'est sans succès, donc je ne sais pas trop ce qui coince. A creuser. Pas mieux pour l'ortho avec https://data.geopf.fr/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&STYLE=normal&FORMAT=image/jpeg&TILEMATRIXSET=PM&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}. Faudrait voir dans la doc IGN si ces URL ne sont plus bonnes.

Flymorox commented 1 month ago

IGN a basculé les URL avec date d'effet définitif le 30 sep. Fini l'URL IGN avec l'apikey publique ! Il faut reformer toute les URL mais apparaissent les différenciations entre donnée publique et privée... tout est expliqué sur le site IGN. Pour info la donnée private accessible par l'apikey=ign_scan_ws est temporaire dixit IGN... et il en existe une autre que l'IGN de distribue pas c'est apikey=geoportail ... des fonds de carte sont perdus comme CASSINI OACI, etc... A terme on imagine donc que IGN va "capitaliser" sur les données attractives type SCAN ;) Voici deux exemples au nouveau format : -public : https://data.geopf.fr/wmts?layer=ORTHOIMAGERY.ORTHOPHOTOS&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y} -private : https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y}]]>

Je suis en bascule pour MOBAC et LOCUS pour l'instant pas trop de perte...

Vottana commented 1 month ago

occtax v2.6.1 geonature : 2.13 Bonjour tout le monde,

J'ai essayé les 2 formats proposés par Flymrox ci-dessous :

Voici deux exemples au nouveau format : -public : https://data.geopf.fr/wmts?layer=ORTHOIMAGERY.ORTHOPHOTOS&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y} -private : [https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y}]]>](https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=%7B$z%7D&TileCol=%7B$x%7D&TileRow=%7B$y%7D%5D%5D%3E)

Mais aucun ne fonctionne. L'orthophoto ne s'affiche toujours pas. Est-ce que l'un ou l'une de vous a réussi à avoir un url fonctionnel ?

Merci d'avance !

naidinp commented 1 month ago

occtax v2.6.1 geonature : 2.13 Bonjour tout le monde,

J'ai essayé les 2 formats proposés par Flymrox ci-dessous :

Voici deux exemples au nouveau format : -public : https://data.geopf.fr/wmts?layer=ORTHOIMAGERY.ORTHOPHOTOS&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y} -private : [https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix={$z}&TileCol={$x}&TileRow={$y}]]>](https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fjpeg&TileMatrix=%7B$z%7D&TileCol=%7B$x%7D&TileRow=%7B$y%7D%5D%5D%3E)

Mais aucun ne fonctionne. L'orthophoto ne s'affiche toujours pas. Est-ce que l'un ou l'une de vous a réussi à avoir un url fonctionnel ?

Merci d'avance !

..pas mieux de mon coté non plu, je viens de passer quelques heures ces derniers jours à essayer différentes url en suivant la doc ....rien n'y fait, j'y arrive pas :(

Sommes nous les seuls à utiliser les fonds de carte ortho ?

Si quelqu'un dans l'equipe de dev peux nous donner une piste d'analyse et un exemple réel qui fonctionne après la bascule, ca serait très cool.

Merci à tous et bon fin de week-end.

camillemonchicourt commented 1 month ago

Oui, idem j'ai fait différents tests et je ne comprends pas pourquoi les nouvelles URL des flux IGN (sur https://data.geopf.fr) ne s'affichent pas, alors que les anciennes fonctionnaient (sur https://wxs.ign.fr). Je ne vois aucune raison à cela. Les nouvelles URL fonctionnent bien en web.

Il doit y avoir un truc de particulier au niveau d'Occtax-mobile, mais je ne sais pas quoi. @sgrimault, une idée ?

Flymorox commented 1 month ago

occtax v2.6.1 geonature : 2.13 Bonjour tout le monde, J'ai essayé les 2 formats proposés par Flymrox ci-dessous : ... Mais aucun ne fonctionne. L'orthophoto ne s'affiche toujours pas. Est-ce que l'un ou l'une de vous a réussi à avoir un url fonctionnel ? ????

Soyons donc plus didactique :)

Avant il y avait cette URL : https://wxs.ign.fr/an7nvfzojv5wa96dsga5nk8w/geoportail/wmts?<+ paramètres>

Depuis 2 ans IGN informe que les sources de données vont basculer vers un nouveau mécanisme. On imagine facilement pourquoi. Avec cette URL et une clé privée "an7nvfzojv5wa96dsga5nk8w" qui a largement été répandue leurs données sont toutes exposées publiquement. Depuis le 1er octobre 2024 cette URL n'est plus accessible. Il faut donc reconstruire le préfixe de l'URL avec la nouvelle syntaxe.

Maintenant il y a ça : https://data.geopf.fr/wmts?<+ paramètres>

Le changement réel ne réside pas dans l'écriture du domaine mais dans la segmentation des données dites publiques et privées. Par exemple ORTHO est public alors que SCAN25 est privé. Pour IGN cette segmentation permet de reprendre le contrôlé sur l'exposition des données.

Public c'est ça : https://data.geopf.fr/wmts?<+ paramètres> Privé c'est ça : https://data.geopf.fr/private/wmts?apikey=ign_scan_ws

La différence réside dans l'accès par /private/ + une clé. Actuellement IGN documente uniquement la clé "ign_scan_ws" comme exposée temporairement. Ecrit dans mon précédent message IGN va la supprimer (quand ?) ce qui obligera l'utilisateur que nous sommes à avoir une API_KEY personnelle. Et comme tout se paie... Dans le débug j'ai identifié une seconde API_KEY "geoportail" non documentée et qui est réservée au domaine IGN. En clair la données GEOPORTAIL est visible sur votre navigateur mais un appel en dehors du domain_server n'expose pas la donnée. Ecrit dans mon précédent message les fonds OACI et CASSINI sont deux exemples de cette API_KEY "geoportail". Pour ceux qui imaginent faire de l'inversion de clé pour voir si... ça fonctionne pas comme ça une résolution par le serveur ;)

Maintenant que le mécanisme est connue la construction d'URL est simple. Il suffit de savoir si la donnée que l'on souhaite récupérer est publique ou privée. Pour cela pas d'autre solution qu'un débug du trafic NETWORK possible avec votre navigateur par "Ctrl"+"Maj"+"i" (OPERA, Chrome, etc) en pointant la requête "wmts". Voici trois URL que vous pouvez copier dans votre barre d'adresse du navigateur. Deux afficheront une tuile 256x256 (c'est où :) une est inaccessible.

ORTHO : https://wmts.geopf.fr/wmts?layer=ORTHOIMAGERY.ORTHOPHOTOS&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix=18&TileCol=132740&TileRow=90177

SCAN 25 : https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN25TOUR&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix=16&TileCol=33185&TileRow=22545

CASSINI : https://data.geopf.fr/private/wmts?apikey=geoportail&layer=GEOGRAPHICALGRIDSYSTEMS.CASSINI&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix=14&TileCol=8293&TileRow=5638

En conclusion. Suivant les paramètres "VARIABLE_IGN" et "VARIABLE_LOGICIEL" vous pouvez construire les URL suivant les deux exemples ci-dessous. J'attire votre attention sur la syntaxe autorisée par votre logiciel. Par exemple en XML dans un paramètre le 'slash' / doit s'écrire %2F comme suit "&Format=image%2F"VARIABLE_IGN". Ne pas respecter un paramètre et vous aurez un accès non autorisé à la donnée IGN. Le débug du trafic NETWORK GEOPORTAIL est donc crucial.

PUBLIC : https://data.geopf.fr/wmts?layer=<VARIABLE_IGN>&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/<VARIABLE_IGN>&TileMatrix=<VARIABLE_LOGICIEL>&TileCol=<VARIABLE_LOGICIEL>&TileRow=<VARIABLE_LOGICIEL>

PRIVE : https://data.geopf.fr/private/wmts?apikey=ign_scan_ws&layer=<VARIABLE_IGN>&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/<VARIABLE_IGN>&TileMatrix=<VARIABLE_LOGICIEL>&TileCol=<VARIABLE_LOGICIEL>&TileRow=<VARIABLE_LOGICIEL>

Bon codage...

sgrimault commented 1 month ago

Bonjour,

Je n'étais pas au courant de ce changement d'URL... cf. https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps#ign-geoportail et aussi https://geoservices.ign.fr/documentation/services/api-et-services-ogc/images-tuilees-wmts-ogc sur lequel je me suis appuyé et où il est encore question de https://wxs.ign.fr... Mais en fait marqué comme déprécié.

La nouvelle documentation autour du service d'images tuilées au format WMTS serait donc https://geoservices.ign.fr/documentation/services/services-geoplateforme/diffusion#70062

camillemonchicourt commented 1 month ago

Bonjour,

Je n'étais pas au courant de ce changement d'URL... cf. https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps#ign-geoportail et aussi https://geoservices.ign.fr/documentation/services/api-et-services-ogc/images-tuilees-wmts-ogc sur lequel je me suis appuyé et où il est encore question de https://wxs.ign.fr... Mais en fait marqué comme déprécié.

La nouvelle documentation autour du service d'images tuilées au format WMTS serait donc https://geoservices.ign.fr/documentation/services/services-geoplateforme/diffusion#70062

Oui, ça a changé depuis un moment. Mais ce qui m'étonne, c'est qu'on ne devrait pas avoir à modifier le code d'Occtax-mobile pour pouvoir changer les URL dans la configuration. On devrait pouvoir faire évoluer ou utiliser d'autres services, sur d'autres URL, sans devoir toucher au code d'Occtax-mobile et devoir publier et déployer une nouvelle version. C'est problématique si c'est le cas. Et là les utilisateurs semblent bloquer, car ils ne peuvent pas modifier les URL des services IGN dans leur configuration. 🤔

naidinp commented 1 month ago

Bonjour, Je n'étais pas au courant de ce changement d'URL... cf. https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps#ign-geoportail et aussi https://geoservices.ign.fr/documentation/services/api-et-services-ogc/images-tuilees-wmts-ogc sur lequel je me suis appuyé et où il est encore question de https://wxs.ign.fr... Mais en fait marqué comme déprécié. La nouvelle documentation autour du service d'images tuilées au format WMTS serait donc https://geoservices.ign.fr/documentation/services/services-geoplateforme/diffusion#70062

Oui, ça a changé depuis un moment. Mais ce qui m'étonne, c'est qu'on ne devrait pas avoir à modifier le code d'Occtax-mobile pour pouvoir changer les URL dans la configuration. On devrait pouvoir faire évoluer ou utiliser d'autres services, sur d'autres URL, sans devoir toucher au code d'Occtax-mobile et devoir publier et déployer une nouvelle version. C'est problématique si c'est le cas. Et là les utilisateurs semblent bloquer, car ils ne peuvent pas modifier les URL des services IGN dans leur configuration. 🤔

Bonjour à tous,

Effectivement c'est bloquant. Je reste à disposition pour des tests si cella peut vous aider.

Bonne journée.

sgrimault commented 1 month ago

L'implémentation actuelle ne permet pas une configuration dynamique et donc de gérer tous les cas de figure. D'un service à un autre, l'URL sera différente notamment au niveau des paramètres. Par exemple, pour les services IGN on a TILEMATRIX pour le niveau de zoom, TILECOL pour x et TILEROW pour y, sans compter les paramètres supplémentaires. Pour un autre service, ce sera avec d'autres paramètres ou directement dans le chemin (genre z/x/y).

cf. le README du module, point Supported sources.

Pour une approche dynamique, il faudrait envisager une URI sous forme d'expression régulière (ou autre) pour récupérer les parties (que ce soit dans le chemin ou sous forme de paramètre) qui définissent z, x, et y. Par exemple pour OSM : https://tile.openstreetmap.org/{z}/{x}/{y}.png

sgrimault commented 1 month ago

Le module maps est déjà corrigé. Je suis en train de préparer une nouvelle version sur la branche 2.7.x. Par contre, ce sera un peu plus long pour la branche 2.6.x, qui date un peu... et qu'entre temps, le module "maps" a évolué.

camillemonchicourt commented 1 month ago

OK OK dans GeoNature et tous nos outils sur Leaflet, on est passé des anciennes URL aux nouvelles, en changeant uniquement l'URL dans la config, sans aucune modification au niveau du code de l'outil, donc pour moi c'était pareil au niveau d'Occtax-mobile. Mais c'est surement Leaflet qui gère tout ça nativement. 🤔

sgrimault commented 1 month ago

Coté osmdroid, on a quelques provider implémentés : https://github.com/osmdroid/osmdroid/tree/master/osmdroid-android/src/main/java/org/osmdroid/tileprovider/tilesource Certaines sont très générique, mais dans tous les cas, il faut quand même se baser sur ces classes pour apporter une implémentation concrète (cf. https://github.com/PnX-SI/gn_mobile_maps/tree/master/maps/src/main/java/fr/geonature/maps/layer/tilesource).

Leaflet a une approche plus "smart" où à partir d'une URL, il comprend à quel type de source il a affaire. Par exemple avec OSM :

L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'});

Donc le fait de changer simplement l'URL (par configuration) suffit, sans rien changer au code.

naidinp commented 1 month ago

Bonjour à tous,

Avez-vous une idée approximative de la date de sortie de la correction pour la version 2.6 car c'est très contraignant pour les utilisateurs d'utiliser que les fonds OpenStreetMaps.

Merci d'avance.

PS : y'a t'il pas une possibilité d'ajouter également une source Google Satellite, comme pour Geonature ?

camillemonchicourt commented 1 month ago

On va corriger pour la 2.7, pour la 2.6 c'est moins certain car nous ne supportons que les dernières versions.

naidinp commented 1 month ago

Merci pour le retour. Il sera nécessaire de faire une migration de la plateforme Geonature pour utiliser occtax 2.7 ? nous utilisons actuellement la : 2.11.0

camillemonchicourt commented 1 month ago

Oui, voir les notes de version de 2.7.0 qui indique :

Cette version nécessite la version 1.13.1 minimum de TaxHub qui elle-même nécessite au minimum la version 2.14 de GeoNature.

naidinp commented 1 month ago

ok merci on va prévoir la migration alors.

sgrimault commented 1 month ago

Bonjour @naidinp,

J'ai publié la première RC de la version 2.7.1 de l'application "Occtax" qui contient notamment le sujet sur les fonds IGN.

naidinp commented 1 month ago

Bonjour @naidinp,

J'ai publié la première RC de la version 2.7.1 de l'application "Occtax" qui contient notamment le sujet sur les fonds IGN.

Bonjour, Merci pour l'info. Y'a plu qu'à programmer une migration Geonature vers la dernière stable et des modules qui vont avec. ... chantier en perspective.

Bonne journée.

camillemonchicourt commented 1 week ago

URL des fonds IGN en ligne modifiés dans la 2.7.1