diff --git a/geo/2-donnees-geo-distantes.md b/geo/2-donnees-geo-distantes.md index fe4e9c21..94e312a3 100644 --- a/geo/2-donnees-geo-distantes.md +++ b/geo/2-donnees-geo-distantes.md @@ -14,21 +14,15 @@ La plateforme data.gouv.fr avec l'extinction de geo.data.gouv consomme maintenan Ces services peuvent prendre la forme: -- de service pour l'affichage sous forme d'image et l'interrogation ponctuelle (WMS), - de service pour afficher des données vecteur et/ou télécharger la donnée sous forme de flux (WFS) - de services pour consommer des fichiers directement téléchargeables (Atom) +- de service pour l'affichage sous forme d'image et l'interrogation ponctuelle (WMS), ## L'intérêt des 3 cas illustrés: Nous n'insistons pas ici sur les modalités pour faire les opérations mais sur l'intérêt que cela présente -### WMS - -Vous ne souhaitez pas télécharger les données mais les regarder dans votre SIG ou dans votre WebSIG, vous passez par un WMS. Pour illustrer, voici un exemple ci-dessous avec la superposition "Modelisation de l'urbanisation taches urbaines situation en 1980 en Franche Comte" ([url de l'image consultable dans le navigateur](https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38154/aea04585-605e-4372-abec-ade0d2380076.internet.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=47.22558937316511418,5.983535451947194161,47.2768081055695788,6.065107850359938269&CRS=EPSG:4326&WIDTH=1345&HEIGHT=845&LAYERS=Tache_urbaine_1980_R43&STYLES=&FORMAT=image/png&DPI=192&MAP_RESOLUTION=192&FORMAT_OPTIONS=dpi:192&TRANSPARENT=TRUE)) sur un fond de plan IGN - -![](./images/wms_overlay_qgis.png) - -### WFS +### WFS (Web Feature Service) **Cas 1**: @@ -39,7 +33,6 @@ Il économise de l'espace disque et/ou de la bande passante car il permet de ne Les inconvénients: il peut s'avérer long à afficher car le contenu distant peut s'avérer lourd donc long à récupérer via votre connexion internet. Vous risquez d'avoir un jour le flux qui s'arrête donc plus rien à consommer. - ![](./images/wfs_overlay_qgis_with_attribute_table.png) **Cas 2**: @@ -52,30 +45,126 @@ Il s'agit d'un format qui permet de diffuser une liste de flux pour permettre de Dans le meilleur des cas, on a correspondance entre un flux WMS pour visualiser sous forme image, un WFS pour de la consultation en ligne vecteur ou du téléchargement et un flux Atom pour télécharger. Dans cette configuration, il faut généralement privilégier le flux Atom si on veut les données sur sa machine. -C'est le cas pour les données précédemment montrées en aperçu https://demo.data.gouv.fr/fr/datasets/service-de-telechargement-simple-atom-du-jeu-de-donnees-modelisation-de-lurbanisation-taches-urbaines-situation-en-1980-en-franche-comte/ +C'est le cas pour les données précédemment montrées en aperçu où on dispose [d'un jeu de données Atom](https://demo.data.gouv.fr/fr/datasets/service-de-telechargement-simple-atom-du-jeu-de-donnees-modelisation-de-lurbanisation-taches-urbaines-situation-en-1980-en-franche-comte/). -Dans ce cas précis, vous allez récupérer un ensemble de fichiers qui viennent du logiciel MapInfo car ils contiennent un fichier tab accompagné d'autres fichiers portant le même nom mais avec une autre extension (on parle de [format MapInfo Tab](https://en.wikipedia.org/wiki/MapInfo_TAB_format)) et un xml qui contient les métadonnées du fichier. +Dans ce cas précis, vous allez récupérer un ensemble de fichiers qui viennent du logiciel MapInfo car ils contiennent un fichier tab accompagné d'autres fichiers portant le même nom mais avec une autre extension (on parle de [format MapInfo Tab](https://en.wikipedia.org/wiki/MapInfo_TAB_format)) et un XML qui contient les métadonnées du fichier. -Ministère de la Transition écologique, Pôle national de données de Biodiversité, DREAL, DRAAF, DRIEE, CEREMA, DDT, DDTM, DEAL +### WMS (Web Map Service) + +Vous ne souhaitez pas télécharger les données mais les regarder dans votre SIG ou dans votre WebSIG, vous passez par un WMS. Pour illustrer, voici un exemple ci-dessous avec la superposition "Modelisation de l'urbanisation taches urbaines situation en 1980 en Franche Comte" ([url de l'image consultable dans le navigateur](https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38154/aea04585-605e-4372-abec-ade0d2380076.internet.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=47.22558937316511418,5.983535451947194161,47.2768081055695788,6.065107850359938269&CRS=EPSG:4326&WIDTH=1345&HEIGHT=845&LAYERS=Tache_urbaine_1980_R43&STYLES=&FORMAT=image/png&DPI=192&MAP_RESOLUTION=192&FORMAT_OPTIONS=dpi:192&TRANSPARENT=TRUE)) sur un fond de plan IGN + +![](./images/wms_overlay_qgis.png) + +## Prérequis: + +Il est utile, voire nécessaire d'installer QGIS sur votre machine. Allez sur https://www.qgis.org/fr/site/forusers/download.html puis déplier le menu "Téléchargement pour Windows". Un gros bouton vert "Télécharger QGIS 3.28". Si vous voulez les dernières fonctionnalités, téléchargez puis faites du "Suivant Suivant" pour installer QGIS. + +Il faut noter la présence d'un texte juste en dessous du gros bouton vert, "En quête de la version la plus stable? Télécharger QGIS 3.22 LTR". Ceux qui prennent cette version cherche un support plus long dans le temps même s'ils ne disposeront de ce fait pas des fonctionnalités récemment introduites. Généralement, ce sont des entreprises, des collectivités qui préfèrent cette option afin de faire une mise à jour moins régulière pour maintenir leurs parcs de machine. + +## Consommer le WFS + +WFS comme Web Feature Service est un standard créé par [l'OGC](https://www.ogc.org) (comme Open Geospatial Consortium) qui permet de consommer des "features" (objets géographiques), c'est à dire des données vectorielles. + +### Le standard WFS + +Il existe plusieurs types de requêtes pour interroger un serveur WFS + +- GetCapabilities. Cette opération permet de lister les informations sur le producteur du service, les lister les opérations autorisées, d'inventorier les couches d'information disponibles . + +- GetFeature. Cette opération permet de retourner les features (objets géographiques). Ils peuvent être filtrés et paginés selon la configuration. Voir les exemples pour une couche mais en limitant à une objet. + * WFS 2.0 + * WFS 1.1.0 + +- DescribeFeatureType. Cela permet de connaitre la structure des colonnes du flux WFS. Voir par exemple qui retourne une sortie du type + +```xml + + + + + + + + + + + + + + + + + + + + + +``` + +On déduit les colonnes sont `Id` de type `string`, `Annee_tache` de type `integer` et `Surface_ha` de type `double`. + +On ne détaille pas les opérations liées WFS-T qui veut dire transactionnel, c'est à dire qui permet de la mise à jour de la base de données depuis un service WFS qui permet l'écriture et pas seulement la lecture. + +#### Pour en savoir plus + +Voir les doccumentations suivantes : + +- [Fiche WFS sur GeoRezo](https://georezo.net/wiki/main/standards/wfs) +- [Documentation WFS Geoserver (anglais)](https://docs.geoserver.org/stable/en/user/services/wfs/reference.html) +- [Documentation de l'OGC sur le WFS (anglais)](http://opengeospatial.github.io/e-learning/wfs/text/basic-index.html) +- [Spécifications OGC du WFS (anglais)](https://www.ogc.org/standards/wfs) + + +### L'écosystème autour du WFS + +#### Client lourd SIG bureautique QGIS + +Pour QGIS, vous pouvez prendre [le guide mis à disposition par l'IGN "Utiliser les données IGN en flux WFS"]( https://geoservices.ign.fr/documentation/services/utilisation-sig/tutoriel-qgis/wfs). Les instructions sont similaires, la seule chose qui change est l'URL à remplir. + + +WARNING: TO CLEAN Ne pas trop rentrer dans le détail et donner des exemples de comment intégrer avec des librairies tierces côté client, côté SIG lourds (QGIS en particulier), bibliothèques liés à des languages de programmation +GDAL (reprendre/bouger ) ## Consommer le WMS ### Le standard WMS -Des exemples de +Ce standard est ancien (1999). Il est comme le WFS, produit par l'OGC. Il est basé sur SOAP. La spécification a 2 versions officielles. Les serveurs généralement supportent 2 versions, la version 1.1.1 et la 1.3.0. + +#### Les deux principaux types de requêtes + +- `GetCapabilities` qui décrit ce que peut retourner le serveur pour un flux. Généralement, cela indique les informations du service comme la description, les contacts via le bloc `Service`; les opérations autorisées via le block `Request` les couches via des blocs `` avec leur nom, leur description et les projections supportées. Vous pouvez inspecter cela via l'URL suivante -- GetCapabilities -- GetFeatureInfo -- GetMap +- `GetMap` qui permet de retourner une image en passant dans l'URL la taille de l'image souhaitée, le nom de la ou les couches souhaitées, la projection de l'image, les coordonnées de l'étendue de l'image (les "4 coins"), le format de l'image (jpeg, png) et d'autres options. C'est ce qu'on voit dans l'URL . Même si nous l'avions pas évoqué antérieurement, il est possible d'indiquer des styles soit internes soit externes dans l'appel pour que l'image change de style. + +### Les types de requête optionnels + +Ils existent des opérations optionnelles qui selon les serveurs sont activées ou non selon ce qui est indiqué dans le bloc `` de `GetCapabilities` + +- `GetFeatureInfo`: permet d'interroger l'information qui est sous-jacente à l'image, généralement lors d'un clic ou d'un survol souris. + +- `DescribeLayer`: permet de spécifier à d'autres outils, où aller chercher la description de la structure des couches C'est surtout important si vous utilisez des styles dit SLD (pour "Styled Layer Descriptor"). Vous ne serez généralement pas concerné par cet usage. +- `GetLegendGraphic`: retourne la légende de la carte. Voici [un exemple d'appel à ce type d'opération](https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38154/aea04585-605e-4372-abec-ade0d2380076.internet.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetLegendGraphic&LAYER=Tache_urbaine_1980_R43&FORMAT=image/png&SLD_VERSION=1.1.0). Comme pour `GetMap`, on peut spécifier un style si nécessaire. Versions 1.1.0 et 1.3.0 -Doc https://georezo.net/wiki/main/standards/wms +Doc ### L'écosystème pour consommer des WMS -TODO +#### Client lourd SIG bureautique QGIS + +Pour QGIS, vous pouvez prendre [le guide mis à disposition par l'IGN "Utiliser les données IGN en flux WMS/WMTS"](https://geoservices.ign.fr/documentation/services/utilisation-sig/tutoriel-qgis/wms-wmts). Les instructions sont similaires, la seule chose qui change est l'URL à remplir. ``` ECOSYSTEME autour: @@ -87,7 +176,7 @@ Trois besoins: - Vous voulez vous ballader sur la donnée dans un logiciel SIG client lourd, type QGIS - Vous voulez consulter la donnée sur votre Web SIG, sur un site en ligne -- Vous souhaitez avoir une vignette d'une zone sous forme image, pour un aperçu +- Vous souhaitez avoir la liste des couches et leur description ou bien une vignette d'une zone sous forme image, pour un aperçu #### Logiciel SIG lourd @@ -95,76 +184,83 @@ Trois besoins: #### Client léger web -Pour le web, il faut généralement utiliser un proxy comme https://data.europa.eu/deu-proxy? ou https://corsproxy.io/? - - -Sans proxy (plante à cause de CORS) - -https://dds2010.github.io/mviewer/?x=706890&y=6242153&z=7&config=demo/addlayers.xml&addLayer={\%22url\%22:\%22https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map%3D\/opt\/data\/carto\/geoide-catalogue\/1.4\/org_5443264\/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map\%22,\%22name\%22:\%22AGENDA21_S_R44\%22,\%22title\%22:\%22AGENDA21_S_R44\%22}# +Vous pouvez avoir un aperçu via Avec proxy -https://dds2010.github.io/mviewer/?x=706890&y=6242153&z=7&config=demo/addlayers.xml&addLayer={\%22url\%22:\%22https://data.europa.eu/deu-proxy?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map%3D\/opt\/data\/carto\/geoide-catalogue\/1.4\/org_5443264\/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map\%22,\%22name\%22:\%22AGENDA21_S_R44\%22,\%22title\%22:\%22AGENDA21_S_R44\%22}# + ou avec un autre proxy -https://dds2010.github.io/mviewer/?x=706890&y=6242153&z=7&config=demo/addlayers.xml&addLayer={\%22url\%22:\%22https://corsproxy.io/?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map%3D\/opt\/data\/carto\/geoide-catalogue\/1.4\/org_5443264\/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map\%22,\%22name\%22:\%22AGENDA21_S_R44\%22,\%22title\%22:\%22AGENDA21_S_R44\%22}# - -Partage - -https://dds2010.github.io/mviewer/?x=706890&y=6242153&z=7&l=epci%2CAGENDA21_S_R44*&lb=positron&config=demo/addlayers.xml&mode=d - - -https://dds2010.github.io/mviewer/?x=439666&y=6394416&z=7&config=demo/addlayers.xml&addLayer=%7B%5C%22url%5C%22:%5C%22https://www.geo2france.fr/geoserver/hdf_common/ows%5C%22,%5C%22name%5C%22:%5C%22Antennes__HdF_EnService_Agreg%5C%22,%5C%22title%5C%22:%5C%22Antennes_test%5C%22%7D - -https://corsproxy.io/?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_5443264/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map&service=WMS&cersion=1.3.0&request=GetCapabilities - -https://corsproxy.io/?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_5443264/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map + +*Warning*: Pour le web, il faut généralement utiliser un proxy car tous les serveurs ne supportent pas qu'on accède depuis une page web à leur contenu hébergé sur un autre domaine. Il existe des proxy publics comme https://data.europa.eu/deu-proxy? ou https://corsproxy.io/? mais nous vous recommandons d'installer le vôtre si vous avez un usage en production. Il en existe dans la plupart des languages de programmation. Vous pouvez trouvez une liste sur (filtrez selon votre language de programmation) -https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/9a623f0c-bd2e-498e-b67b-2b363a5d6e0d.internet.map&service=WFS&request=GetCapabilities +Pour utiliser les "capabilities" WMS, -https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/025777cb-1837-4898-bafc-71d60c44d7eb.internet.map&service=WFS&typeNames=ms:N_INT1_GENERATEUR_SUP_S_062&request=DescribeFeatureType&version=2.0.0 +**JavaScript** -https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/025777cb-1837-4898-bafc-71d60c44d7eb.internet.map&service=WFS&VERSION=2.0.0&typeNames=ms:N_INT1_GENERATEUR_SUP_S_062&MaxFeatures=1&request=getfeature +- Via [wms-capabilities](https://www.npmjs.com/package/wms-capabilities) (extrait de OpenLayers pour être totalement indépendant) +- Via [JSONIX](https://github.com/highsource/jsonix) avec [ogc-schemas](https://www.npmjs.com/package/@ogc-schemas/ogc-schemas) (fonctionnement client comme serveur) +- Via Openlayers ([exemple officiel "WMS Capabilities Parsing" disponible](https://openlayers.org/en/latest/examples/wms-capabilities.html)) (fonctionnement client comme serveur) +- Via le [contrôle WMS Capabilities de la bibliothèque ol-ext](http://viglino.github.io/ol-ext/examples/layer/map.wmscapabilities.html?lon=2.344347&lat=48.855181&z=14.5) (extensions liées à la bibliothèque OpenLayers) -https://jsonformatter.org/xml-formatter/?url=https%3A%2F%2Fogc.geo-ide.developpement-durable.gouv.fr%2Fwxs%3Fmap%3D%2Fopt%2Fdata%2Fcarto%2Fgeoide-catalogue%2F1.4%2Forg_38066%2F9a623f0c-bd2e-498e-b67b-2b363a5d6e0d.internet.map%26service%3DWFS%26request%3DGetCapabilities -curl -X 'GET' \ - 'https://demo.data.gouv.fr/api/1/datasets/service-de-visualisation-cartographique-wms-du-jeu-de-donnees-driaaf-idf-territoire-maet-en-ile-de-france/' \ - -H 'accept: application/json' +#### liste des couches et leur description ou bien une vignette d'une zone sous forme image, pour un aperçu +**Python** -```javascript -var url_str = 'https://demo.data.gouv.fr/fr/datasets/service-de-visualisation-cartographique-wms-du-jeu-de-donnees-driaaf-idf-territoire-maet-en-ile-de-france/'; +Avec [Owslib](https://geopython.github.io/OWSLib/) -var url = new URL(url_str); -var baseUrl = url.origin; -var slug = url.pathname.split('/').filter(el => el != '').slice(-1)[0] -var api_url = `${baseUrl}/api/1/datasets/${slug}` -console.log(api_url) +```python +from owslib.wms import WebMapService -fetch(api_url) -.then(resp => resp.json()) -.then(json => { - console.log(json); - var wms = json.resources.filter(el => el.description.includes('WMS') || el.title.includes('WMS')) - if (wms[0]) { - wms[0].url - } -}).catch(function (err) { - // There was an error - console.warn('Something went wrong.', err); -}); +wms = WebMapService('https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38154/aea04585-605e-4372-abec-ade0d2380076.internet.map', version='1.3.0') + +for operation in wms.operations: + print(operation.name) + print(operation.methods) + print(operation.formatOptions) + +for name, content_metadata in wms.items(): + print('crsOptions', content_metadata.crsOptions) + print('crs_list', content_metadata.crs_list) + print('dataUrls', content_metadata.dataUrls) + print('defaulttimeposition', content_metadata.defaulttimeposition) + print('dimensions', content_metadata.dimensions) + print('elevations', content_metadata.elevations) + print('featureListUrls', content_metadata.featureListUrls) + print('fixedHeight', content_metadata.fixedHeight) + print('fixedWidth', content_metadata.fixedWidth) + print('id', content_metadata.id) + print('index', content_metadata.index) + print('keywords', content_metadata.keywords) + print('layers', content_metadata.layers) + print('max_scale_denominator', content_metadata.max_scale_denominator.text if content_metadata.max_scale_denominator is not None else None) + print('metadataUrls', content_metadata.metadataUrls) + print('min_scale_denominator', content_metadata.min_scale_denominator.text if content_metadata.min_scale_denominator is not None else None) + print('name', content_metadata.name) + print('noSubsets', content_metadata.noSubsets) + print('opaque', content_metadata.opaque) + print('parent', content_metadata.parent) + print('queryable', content_metadata.queryable) + print('scaleHint', content_metadata.scaleHint) + print('styles', content_metadata.styles) + print('timepositions', content_metadata.timepositions) + print('title', content_metadata.title) ``` +Pour les autres languages de programmation, il faut vous appuyer sur le parsing XML natif ou fournit par des bibliothèques tierces. + -Pour utiliser les capabilities WMS, +Pour l'affichage de carte en WMS, -JavaScript +- [OpenLayers](https://openlayers.org/en/latest/examples/?q=wms) +- Maplibre GL JS +- Leaflet -- http://viglino.github.io/ol-ext/examples/layer/map.wmscapabilities.html?lon=2.344347&lat=48.855181&z=14.5 +#### Manipulation côté serveur Python @@ -218,10 +314,10 @@ else: ``` -``` +```python from owslib.wms import WebMapService -wms = WebMapService('https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38178/908a2fc2-6752-4eae-952a-142393e657b7.internet.map', version='1.3.0') +wms = WebMapService('https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38154/aea04585-605e-4372-abec-ade0d2380076.internet.map', version='1.3.0') response = wms.getmap(layers=['N_PERIM_MAET_ZINF_S_R11',], bbox=(1.44041, 48.1107, 3.56583, 49.2484), @@ -233,45 +329,72 @@ with open(f"N_PERIM_MAET_ZINF_S_R11.png", 'wb') as out: out.write(response.read()) ``` +## ATOM = WFS sans la complication -## Prérequis: +Le plus simple: assimilable à des fichiers SIG + autres données (données attributaires + doc PDF +...) -Installation QGIS: trouver une doc claire d'installation pour pointer dessus +## Investigation: -## Consommer le WFS +Voir ce qu'il est possible d'améliorer en ligne -### Le standard WFS +Retours après relecture -- GetCapabilities -- GetFeature + aperçu avec limit 1 -- DescribeFeatureType -On ne détaille pas le WFS-T qui veut dire transactionnel, c'est à dire qui permet de la mise à jour de la base de données depuis un service WFS qui permet l'écriture et pas seulement la lecture. +Guide: consommer les données géographiques sous tous leurs formats -Doc https://georezo.net/wiki/main/standards/wfs + https://docs.geoserver.org/stable/en/user/services/wfs/reference.html +- WFS/WMS (palliatif disparition geo.data.gouv) +- les autres formats usuels et leur exploitation: reprise mais avec quelques cas sur des jeux de données hébergés -Versions: 1.0.0, 1.1.1, 2.0 -ECOSYSTEME autour: + -Ne pas trop rentrer dans le détail et donner des exemples de comment intégrer avec des librairies tierces côté client, côté SIG lourds (QGIS en particulier), bibliothèques liés à des languages de programmation -GDAL (reprendre/bouger https://guides.etalab.gouv.fr/apis-geo/2-api-decoupage-administratif.html#les-sources-alternatives-pour-les-communes) -## ATOM = WFS sans la complication +## Voir ultérieurement ce qu'on exploite de ce contenu -Le plus simple: assimilable à des fichiers SIG + autres données (données attributaires + doc PDF +...) +Partage -## Investigation: +https://dds2010.github.io/mviewer/?x=706890&y=6242153&z=7&l=epci%2CAGENDA21_S_R44*&lb=positron&config=demo/addlayers.xml&mode=d -Voir ce qu'il est possible d'améliorer en ligne +https://dds2010.github.io/mviewer/?x=439666&y=6394416&z=7&config=demo/addlayers.xml&addLayer=%7B%5C%22url%5C%22:%5C%22https://www.geo2france.fr/geoserver/hdf_common/ows%5C%22,%5C%22name%5C%22:%5C%22Antennes__HdF_EnService_Agreg%5C%22,%5C%22title%5C%22:%5C%22Antennes_test%5C%22%7D -Retours après relecture +https://corsproxy.io/?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_5443264/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map&service=WMS&cersion=1.3.0&request=GetCapabilities + +https://corsproxy.io/?https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_5443264/ccf16ee8-5b97-4cf5-9257-c88102c106e2.internet.map +https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/9a623f0c-bd2e-498e-b67b-2b363a5d6e0d.internet.map&service=WFS&request=GetCapabilities -Guide: consommer les données géographiques sous tous leurs formats +https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/025777cb-1837-4898-bafc-71d60c44d7eb.internet.map&service=WFS&typeNames=ms:N_INT1_GENERATEUR_SUP_S_062&request=DescribeFeatureType&version=2.0.0 -- WFS/WMS (palliatif disparition geo.data.gouv) -- les autres formats usuels et leur exploitation: reprise mais avec quelques cas sur des jeux de données hébergés +https://ogc.geo-ide.developpement-durable.gouv.fr/wxs?map=/opt/data/carto/geoide-catalogue/1.4/org_38066/025777cb-1837-4898-bafc-71d60c44d7eb.internet.map&service=WFS&VERSION=2.0.0&typeNames=ms:N_INT1_GENERATEUR_SUP_S_062&MaxFeatures=1&request=getfeature + +https://jsonformatter.org/xml-formatter/?url=https%3A%2F%2Fogc.geo-ide.developpement-durable.gouv.fr%2Fwxs%3Fmap%3D%2Fopt%2Fdata%2Fcarto%2Fgeoide-catalogue%2F1.4%2Forg_38066%2F9a623f0c-bd2e-498e-b67b-2b363a5d6e0d.internet.map%26service%3DWFS%26request%3DGetCapabilities + +curl -X 'GET' \ + 'https://demo.data.gouv.fr/api/1/datasets/service-de-visualisation-cartographique-wms-du-jeu-de-donnees-driaaf-idf-territoire-maet-en-ile-de-france/' \ + -H 'accept: application/json' + + +```javascript +var url_str = 'https://demo.data.gouv.fr/fr/datasets/service-de-visualisation-cartographique-wms-du-jeu-de-donnees-driaaf-idf-territoire-maet-en-ile-de-france/'; + +var url = new URL(url_str); +var baseUrl = url.origin; +var slug = url.pathname.split('/').filter(el => el != '').slice(-1)[0] +var api_url = `${baseUrl}/api/1/datasets/${slug}` +console.log(api_url) +fetch(api_url) +.then(resp => resp.json()) +.then(json => { + console.log(json); + var wms = json.resources.filter(el => el.description.includes('WMS') || el.title.includes('WMS')) + if (wms[0]) { + wms[0].url + } +}).catch(function (err) { + // There was an error + console.warn('Something went wrong.', err); +}); +``` -http://opengeospatial.github.io/e-learning/wfs/text/operations.html +Ministère de la Transition écologique, Pôle national de données de Biodiversité, DREAL, DRAAF, DRIEE, CEREMA, DDT, DDTM, DEAL