10 déc. 2019 22:07:47 Thomas Dumont avatar

Afficher des données cartographiques avec le Plugin GISMAP


Description du plugin

Le Plugin GISMAP apporte un socle de base permettant d'afficher des données cartographiques au sein d'une application Lutèce.
Son implémentation s’appuie sur les libraires OpenLayers.

Ce plugin permet l’affichage de données spatiales issues :

  • Divers formats
    • WMTS, WMS, WFS
    • GeoJson
  • Divers serveurs cartographiques
    • GeoServer
    • ArcGis Server
  • Divers fournisseurs
    • CapGeo (Infrastructure de données spatiales de la Mairie de Paris)
    • ArcGis On Line (Esri)
    • OpenStreetMap

Nouveautés 2018 : Possibilité d’affichage des vues immersives (Données disponibles sur Paris uniquement)

Le viewer cartographique intègre les principales fonctionnalités standard de navigation cartographiques :

  • Zoom, Pan
  • Localisation à partir d'une position GPS,
  • Flèche Nord, Orientation de la carte (Rotation)
  • Outil de gestion d'affichage des couches de données
  • Affichage des coordonnées du curseur
  • Outils de dessin, outils de mesures de distance ou de surface
  • Popup d'affichage des informations attributaires
  • Reprojection des données
  • Carte de positionnement
  • Affichage plein écran

Carte GISMAP

La démarche consiste à créer un plugin ou module lutece incluant le plugin-gismap et apportant les implémentations java des interfaces dans le code serveur.

Inclusion du plugin

Inclure le plugin-gismap dans le pom.xml du plugin ou module en spécifiant la dernière version à jour :

<dependency>
    <groupId>fr.paris.lutece.plugins</groupId>
    <artifactId>plugin-gismap</artifactId>
    <version>2.0.0</version>
    <type>lutece-plugin</type>
</dependency>

Instancier une carte GISMAP

Déclarer une nouvelle instance de GISMAP pour initialiser la carte :

var GisMapDisplay = new GisMap(idMap, idInit);
GisMapDisplay.initGisMap(globalParameters, fieldParameters0);

dans lequel :

  • globalParameters contient les propriétés du fichier gismap.properties.
  • fieldParameters0 contient les paramètres dynamiques transmis par Lutèce.

Alimentation de la carte par webservice de publication des données métiers

Pour afficher les données métiers sur la carte, il faut publier un webservice GEOJSON de type REST. Comme le webservice retourne du JSONP, il doit obligatoirement avoir en paramètre d’entrée un callback et retourne ce paramètre callback avec la liste de points GEOJson.

Dans la page HTML, l’alimentation se fait via la méthode filterLayerGEOJSON().

Exemple :

GisMapDisplay.getFilter().filterLayerGEOJSON('MaCoucheMetier', 'EPSG:2154','/MonSite/rest/FRWS/MonService?MonParam='+ValParam,'static');

Où :

  • 'MaCoucheMetier' est le nom de la couche métier
  • 'EPSG:2154' est le code de la projection des données géographiques publiées par le webservice
  • '/MonSite/rest...' est l’URL du webservice (elle peut avoir des paramètres)
  • 'Static' est la Stratégie d'affichage (voir la documentation pour plus de détails)