Aller au contenu

Exercices Hydro (TMS + WFS)

Exercice - Hydro TMS raster + WFS#

Objectif identique à l’exercice Hydro WMS, mais avec un flux tuilé TMS raster et l’utilisation de WFS.

  • (basez-vous sur l’exemple précédent en supprimant les choses inutiles)
  • ajoutez une couche tuilée de type XYZ (flux TMS raster)
    • URL: https://api.ensg.eu/geoserver/gwc/service/tms/1.0.0/ensg:hydro@EPSG%3A900913@png/{z}/{x}/{-y}.png

Nous allons maintenant faire appel au flux WFS pour récupérer la feature la plus proche du pixel cliqué. Pour cela :

  • ajoutez un événement click sur la carte, et :
    • demandez la résolution actuelle d’1 mètre sur le terrain (en fonction du zoom)
      let pointResolution = ol.proj.getPointResolution(
          map.getView().getProjection(),
          map.getView().getResolution(),
          evt.coordinate,
          'm'
      )
      
    • récupérez lat et lng (avec evt.coordinate)
    • faites appel au service WFS
      • URL https://api.ensg.eu/geoserver/ows?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&typename=ensg:hydro&outputFormat=application/json&srsName=EPSG:3857
      • application d’un filtre CQL pour une requête géométrique
        • avec DWITHIN(expression, expression, distance, unit)
        • &cql_filter=DWITHIN(the_geom,SRID=3857;POINT(${lat} ${lng}),${pointResolution * 3},meters)
    • ajoutez les données récupérées (GeoJSON) dans le calque de visualisation de la sélection
    • adaptez le code pour afficher le nom du tronçon