Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@ignf-geoportal/sdk-2d

IGNF2.7kCECILL-B3.5.6

French Geoportal SDK based on OpenLayers (2D)

openlayers, geoportail, geoplateforme, webservice, javascript

readme

Kit de Développement (SDK) Géoplateforme - version 2D

Le Kit de Développement Web Géoplateforme dans sa version "SDK-2D" s’adresse à des gestionnaires de site internet désireux de proposer rapidement une cartographie dynamique en 2D utilisant les fonds IGN sur leur site et faisant appel à des fonctionnalités simples :

Mise en oeuvre

Téléchargement

Vous pouvez récupérer le Kit de Développement Web Géoplateforme soit par téléchargement direct, soit en utilisant le gestionnaire de dépendances javascript NPM.

Il contient l'arborescence suivante :

<Kit de Développement Web Géoplateforme>/
    GpSDK2D.js
        (version minifiée du code javascript pour une utilisation en production)
    GpSDK2D.css
        (version minifiée des css pour une utilisation en production)
    GpSDK2D-src.js
        (version non minifiée du code javascript pour une utilisation en développement)
    GpSDK2D-src.css
        (version non minifiée des css pour une utilisation en développement)
    GpSDK2D-map.js
        (version source map du code javascript pour une utilisation en développement)
    GpSDK2D-map.css
        (version source map des css pour une utilisation en développement)

Téléchargement direct

Vous pouvez télécharger la dernière version du Kit de Développement Web Géoplateforme directement sur la page Github des releases du SDK. Kit de Développement Géoplateforme L'archive téléchargée (GpSDK.zip) comprend l'arborescence décrite ci-dessus.

Récupération avec NPM

Le Kit de Développement Web Géoplateforme est aussi disponible dans les dépôts NPM.

Prérequis : NodeJS et npm installés.

npm i @ignf-geoportal/sdk-2d

L'arborescence décrite ci-dessus sera alors accessible dans le répertoire node_modules/@ignf-geoportal/sdk-2d/dist/ de votre projet.

Accès direct

Vous pouvez aussi choisir d'utiliser des fichiers hébergés en ligne, pour y accéder directement, lors de vos tests par exemple. Cependant, pour une utilisation en production, nous vous conseillons de télécharger ces fichiers et de les héberger vous-même, sur le même serveur qui héberge votre application. Par exemple sur Github Pages :

https://ignf.github.io/geoportal-sdk/latest/dist/2d/GpSDK2D.js
https://ignf.github.io/geoportal-sdk/latest/dist/2d/GpSDK2D.css
https://ignf.github.io/geoportal-sdk/latest/dist/2d/GpSDK2D-src.js
https://ignf.github.io/geoportal-sdk/latest/dist/2d/GpSDK2D-src.css

Intégration dans une page web

Placez les fichiers du SDK géoportail dans l'arborescence de votre serveur web. Vous pouvez positionner à votre guise les fichiers css et javascript.

Intégrez le SDK géoportail dans votre page web classiquement à l'aide d'une balise script pour charger le fichier javascript et d'une balise link pour charger le fichier css.

<!-- SDK web Géoplateforme -->
<script src="chemin/vers/GpSDK2D.js"></script>
<link rel="stylesheet" href="chemin/vers/GpSDK2D.css" />

Utilisation dans module ES6

import * as Gp from "@ignf-geoportal/sdk-2d";

// votre utilisation du SDK
var map = Gp.Map.load("myDivId",{
    apiKey : "monThemeGeoplateforme",
    ...
});

Interfaces de programmation

Le chargement du SDK vous donne accès à son interface de programmation en plus des interfaces de programmation de la bibliothèque d'accès ; d'OpenLayers et de son extension géoportail dédiée.

Création et affichage d'une carte

La création et l'affichage d'une carte se fait à l'aide de la fonction Gp.Map.load(). Elle prend deux paramètres en entrée :

  • l'identifiant du container HTML (typiquement un élément <div>) dans lequel on veut qu'elle s'affiche.

  • un objet javascript, de type Gp.MapOptions contenant le paramétrage de la carte.

Elle retourne un objet de type Gp.Map avec lequel il sera ensuite possible d'intéragir.

Exemple : le code suivant :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {           
         // thème(s) d'accès à la plateforme
         apiKey: "cartes,essentiels",
         // centrage de la carte
         center : {
             location : "73 avenue de Paris, Saint-Mandé"
         },
         // niveau de zoom de la carte (de 1 à 21)
         zoom : 17,
         // Couches à afficher
         layersOptions : {
             "GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2" : {
             }
         },
         // Outils additionnels à proposer sur la carte
         controlsOptions : {
             // ajout d'une barre de recherche
             "search" : {
                 maximised : true
             }
         },
         // Repères visuels
         markersOptions : [{
             content : "<h1>Pôle Géosciences</h1><br/><p>73 avenue de Paris, Saint-Mandé</p><br/><p><a href='http://www.pôle-géosciences.fr/index.htm' target='_blank'>Site Web</a></p>"
         }]
    }    
) ;

Permet, d'afficher une carte avec les options suivantes :

Voir le code sur jsFiddle :

jsFiddle

Configuration de l'accès à la Géoplateforme

L'extension Géoplateforme pour iTowns exploite les services web exposés par la Géoplateforme. Ceux-ci sont en libre accès.

Vous pouvez cependant paramétrer l'utilisation de l'extension avec une ou plusieurs thématiques Géoplateforme qui correspondent à vos besoins en générant un fichier de configuration local à partir de cette interface ou en passant par le paramètre apiKey.

Si ni apiKey, ni fichier de configuration local n'est spécifié, l'utilisateur récupérera une configuration complète avec toutes les ressources de la Géoplateforme (qui pourra donc être très volumineuse).

Le SDK web Géoplateforme exploite les services web exposés par la Géoplateforme. Ceux-ci sont en libre accès.

Vous pouvez cependant paramétrer l'utilisation de l'extension avec une ou plusieurs thématiques Géoplateforme qui correspondent à vos besoins en générant un fichier de configuration local à partir de cette interface ou en passant par le paramètre apiKey.

Si ni apiKey, ni fichier de configuration local n'est spécifié, l'utilisateur récupérera une configuration complète avec toutes les ressources de la Géoplateforme (qui pourra donc être très volumineuse).

Il est possible de savoir quelle thème est associée à quelle ressource ici.

Configuration dynamique

Une fois la ou les thèmes voulus choisies, vous pouvez les utiliser pour paramétrer le SDK à l'aide de la propriété apiKey lors de l'initialisation de la carte :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         ...
         // clef d'accès à la plateforme
         apiKey: "THEME-1,THEME-2",
         ...
    }
) ;

Lors du chargement de la carte, le SDK récupèrera automatiquement la configuration associée à votre clef et s'en servira pour paramétrer la carte en fonction des droits disponibles.

Optimisation du chargement : configuration locale

Vous pouvez améliorer le temps de chargement de votre page en mettant en cache sur votre plateforme la configuration associée à votre ou vos clefs d'accès. Il vous suffit pour cela de récupérer le fichier de configuration (customConfig.json) obtenu à l'aide du formulaire de ce tutoriel.

Enregistrez ce fichier sur votre plateforme et paramétrez le SDK à l'aide de la propriété customConfigFile lors de l'initialisation de la carte :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         ...
         // configuration de l'accès à la plateforme
         configUrl : "chemin/vers/customConfig.json",
         ...
    }
) ;

Configuration du centrage de la carte

Le paramétrage du centre de la carte se fait à l'aide de la propriété center de l'objet mapOptions.

On peut centrer la carte de differentes façons :

Centrage par coordonnées

On précise les coordonnées à l'aide des propriétés x** et **y en y associant l'identifiant de la projection dans laquelle elles sont exprimées à l'aide de la propriété projection. Par défaut, la projection utilisée est celle de la carte.

Exemple :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         // centrage de la carte
         center : {
             x : -4.620391,
             y : 48.268698,
             projection : "CRS:84"
         },
    }
) ;

Plus d'informations sur le paramétrage des projections ici.

Centrage en utilisant le service de géocodage du Géoplateforme

La propriété location permet de préciser le lieu à géocoder et la propriété locationType permet de préciser le type de Géocodage à appliquer, selon la terminologie suivante (rendez vous ici pour plus d'informations sur le service de Géocodage du Géoplateforme...) :

  • "PositionOfInterest" : géocodage par noms de lieux

  • "StreetAddress" : géocodage par adresses

  • "CadastralParcels" : géocodage d'indentifiants de parcelles cadastrales

  • "location" : regroupe les types "PositionOfInterest" et "StreetAddress"

Exemple :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         // centrage de la carte
         center : {
             location : "73 avenue de Paris, Saint-Mandé",
             locationType : "StreetAddress"
         },
    }
) ;

NB : Cette possibilité de centrage ne fonctionne que si au moins une clef d'accès à la Géoplateforme utilisée pour paramétrer le SDK possède les droits nécessaires sur les ressources utilisées pour le Géocodage, par exemple la clé "essentiels".

Centrage par géolocalisation du terminal utilisé

La propriété geolocate, si elle est positionnée à true, permet de déclencher - sous réserve d'acceptation de l'internaute - une géolocalisation du terminal consultant la page et d'utiliser les coordonnées obtenues pour centrer la carte.

Exemple :

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         // centrage de la carte
         center : {
             geolocate : true
         },
    }
) ;

NB : on peut modifier le centre de la carte à tout moment après son chargement initial à l'aide de la méthode setCenter(), de l'objet map retourné par la fonction Gp.map.load(). Voir la partie "Interaction avec la carte"

Configuration des couches utilisées pour composer la carte

Le paramétrage des couches qui vont composer la carte se fait à l'aide de la propriété layersOptions de l'objet mapOptions.

C'est un objet javascript dont chaque propriété va représenter une couche composant la carte : la clef est un identifiant associé à la couche ; la valeur d'un objet de type Gp.LayerOptions permettant de préciser les caractéristiques de la couche à afficher.

Si cette propriété n'est pas renseignée, l'affichage se fera par défaut avec la couche des Photographies aériennes ("ORTHOIMAGERY.ORTHOPHOTOS") servie en images tuilées (WMTS) si la clef d'accès utilisée pour initialiser la carte en possède les droits.

Selon le type de couches à afficher ("Géoplateforme" ou externe), le paramétrage varie.

Affichage des couches Géoplateforme WMS et WMTS

Les couches Géoplateforme sont les couches auxquelles donne droit les clefs utilisées pour paramétrer la carte. Pour ajouter une telle couche à la carte, il suffit d'utiliser son nom technique comme clef de l'objet layersOptions et de passer comme valeur associée, un objet javascript de type Gp.LayerOptions contenant, si besoin, des propriétés particulières ou vide si la configuration par défaut convient.

Exemple 1 : ajout des couches WMTS Photographies aériennes et cartes avec une opacité de 30%.

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         ...
         // Couches à afficher
         layersOptions : {
             // Couche photographies aériennes
             "ORTHOIMAGERY.ORTHOPHOTOS" : {},
             // Couche photographies aériennes
             "GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2" : {
                 opacity : 0.3
             }
         }
         ...
    }    
) ;

Voir l'exemple complet sur jsFiddle

Exemple 2 : ajout de couches WMS INSPIRE servies par la Géoplateforme.

var map = Gp.Map.load(
    "map", // html div
    {
         ...
         layersOptions : {
             "OI.OrthoimageCoverage" : {},
             "BU.Building" : {}
         }
         ...
    }    
) ;

Voir l'exemple complet sur jsFiddle

Affichage des couches "externes"

Les couches externes sont des données issues d'autres serveurs que ceux de la Géoplateforme. Pour ajouter de telles couches à la carte, vous utilisez un identifiant de votre choix comme clef de l'objet layersOptions et passez comme valeur associée, un objet javascript de type Gp.LayerOptions contenant le paramétrage nécessaire qui permettra au SDK d'afficher la couche.

Les formats supportés par le SDK pour les couches externes sont les suivants :

Pour les données images : WMS, WMTS, Open Street Map

Pour les données vecteur : WFS, KML, GPX, GeoJSON

Le type de couches à afficher, lorsqu'il ne s'agit pas d'une couche Géoplateforme, doit être passé via la propriété "format" de l'objet Gp.LayerOptions.

Exemple : ajout d'une couche WMS externe.

var map = Gp.Map.load(
    "map", // html div
    {
         ...
         layersOptions : {
             "ORTHOIMAGERY.ORTHOPHOTOS" : {},
             "ifremer-sables-languedoc" : {
                 title : "Sables Languedoc",
                 description :"IFREMER : Formations superficielles du précontinent Languedocien - Sable",
                 format : "WMS",
                 version : "1.3.0",
                 url : "http://www.ifremer.fr/services/wms/geosciences?",
                 layers : ["IFR_FACIESSABLE_GDL_1986_P"],
                 outputFormat : "image/png",
                 legends : [{
                     url : "http://www.ifremer.fr/services/wms/geosciences?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=IFR_FACIESSABLE_GDL_1986_P&format=image/png&STYLE=default",
                     format : "image/png"
                 }]
             }
         },
         ...
    }
) ;

Voir l'exemple complet sur jsFiddle

NB : on peut ajouter, modifier ou retirer les couches de la carte à tout moment après son chargement initial à l'aide des méthodes addLayers(), modifyLayers() ou removeLayers() de l'objet map retourné par la fonction Gp.map.load(). Voir la partie "Interaction avec la carte"

Configuration des markers

Le SDK vous permet de rajouter des repères (markers) sur votre carte. Cela se fait à l'aide de la propriété markersOptions de l'objet mapOptions.

Il s'agit d'un tableau javascript contenant autant d'éléments que de markers à rajouter. Chaque élément est un objet javascript de type Gp.MarkerOptions ; il permet de préciser les caractéristiques (positionnement, apparence, ...) du repère de positionnement à afficher.

Exemple : Positionnement d'un marker au centre de la carte.

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {           
         ...
         // Repères visuels
         markersOptions : [{
             content : "<h1>Pôle Géosciences</h1><br/><p>73 avenue de Paris, Saint-Mandé</p><br/><p><a href='http://www.pôle-géosciences.fr/index.htm' target='_blank'>Site Web</a></p>"
         }],
         ...
    }    
) ;

Voir l'exemple complet sur jsFiddle

Configuration des outils additionnels à proposer sur la carte

Par défaut la carte se présente avec les boutons de zoom et l'affichage des attributions. Le SDK vous permet de rajouter des outils sur la carte qui vont permettre à l'internaute d'interagir avec celle-ci.

L'ajout d'outils se fait à l'aide de la propriété controlsOptions de l'objet mapOptions. Il s'agit d'un objet javascript dont chaque propriété a le nom de l'outil à rajouter et chaque valeur de propriété permet de préciser - si besoin - le paramétrage de l'outil. Ce paramétrage se fait à l'aide d'un objet javascript de type Gp.ControlOptions, dont les propriétés vont varier selon l'outil.

Les outils disponibles sont les suivants :

NB : on peut ajouter, modifier ou retirer les outils de la carte à tout moment après son chargement initial à l'aide des méthodes addControls(), modifyControls() ou removeControls() de l'objet map retourné par la fonction Gp.map.load(). Voir la partie "Interaction avec la carte"

Abonnement aux interactions des utilisateurs avec la carte

Le SDK permet d'écouter certains événements qui se produisent lorsque les internautes interagissent avec la carte et de définir des comportements à appliquer lorsque ces événements se produisent.

Cela se fait à l'aide de la propriété mapEventsOptions de l'objet mapOptions.

Il s'agit d'un objet javascript dont les propriétés ont le nom de l'événement auquel on souhaite s'abonner et les valeurs associées sont des fonctions javascript à déclencher lorsque l'événement se produit. Chaque fonction prend comme paramètre un objet javascript représentant l'événement et ses propriétés qui vient de se produire.

Les événements auxquels on peut s'abonner sont les suivants :

  • Evénements d'initialisation : "mapLoaded", "geolocated", "located", "configured"

  • Evénements de changement d'état de la carte : "centerChanged", "zoomChanged" ,"azimuthChanged", "layerChanged"

Exemple : Déclenchement d'une alerte à la fin de l'initialisation de la carte.

var map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {           
         ...
         mapEventsOptions : {
             // when map has finished to initialize and to render
             "mapLoaded" : function(evt) {
                 alert("map ready !") ;
             }
         }
         ...
    }    
) ;

Voir l'exemple complet sur jsFiddle

NB : on peut s'abonner aux événements à tout moment après le chargement initial de la carte à l'aide de la méthode listen() de l'objet map retourné par la fonction Gp.map.load(). Voir la partie "Interaction avec la carte"

Autres possibilités de paramétrage

L'objet Gp.MapOptions permet de jouer sur d'autres paramètres de la carte lors de son initialisation avec la fonction Gp.Map.load(). Entre autres :

  • la projection

  • les niveaux de zoom courant, minimal et maximal

  • l'orientation (azimuth) de la carte

  • ...

Interaction avec la carte créée

La fonction Gp.Map.load() retourne un objet de type Gp.Map avec lequel il sera possible d'intéragir programmatiquement à partir du moment où l'événement "mapLoaded" sera émis.

Pour un bon fonctionnement, il faut donc conditionner les traitements ultérieurs au chargement de la carte à la réception de cet événement à l'aide de la propriété mapEventsOptions comme décrit précédemment. Un script javascript utilisant le SDK web Géoplateforme aura donc l'allure générale suivante :


var map = null ;

function afterInitMap() {
    // le code de l'application interagissant avec la carte
    // ici, l'objet map est initialisé.
    ...
}

// Chargement de la carte et initialisation de l'objet Map
map = Gp.Map.load(
    "mapDiv",   // identifiant du conteneur HTML
    // options d'affichage de la carte (Gp.MapOptions)
    {
         apiKey : "THEME-1, THEME-2",
         ...
         mapEventsOptions : {
             // Appel de la fonction après le chargement de la carte
             "mapLoaded" : afterInitMap
         }
         ...
    }    
) ;

changelog

CHANGELOG 2D/3D GEOPORTAL

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


Release 3.1.5

07/04/2021 : version 3.1.5

Release SDK Geoportail 2D/3D

Summary

  • Upgrade itowns et extension geoportail associée

Changelog


Release 3.1.4

15/02/2021 : version 3.1.4

Release SDK Geoportail 2D/3D

Summary

  • Upgrade des extensions geoportail sous-jacentes

Changelog


Release 3.1.3

16/12/2020 : version 3.1.3

Release SDK Geoportail 2D/3D

Summary

  • Corrections mineures

Changelog

  • [Added]

  • [Changed]

  • [Removed]

  • [Fixed]

    • correction des tests
    • correction chargement par défaut couche orthophotos en 3D
  • [Deprecated]

  • [Security]


Release 3.1.2

11/12/2020 : version 3.1.2

Release SDK Geoportail 2D/3D

Summary

  • Changements internes et mise à jour de la documentation

Changelog

  • [Added]

  • [Changed]

    • mise à jour documentation
    • changements internes du processus de build (b9564b912049dbade1a3f9548a67e2bf374471e1)
  • [Removed]

  • [Fixed]

  • [Deprecated]

  • [Security]


Release 3.1.1

08/12/2020 : version 3.1.1

Release SDK Geoportail 2D/3D

Summary

  • Correction urgente sur le chargement d'une carte avec autoconf distante

Changelog

  • [Added]

  • [Changed]

  • [Removed]

  • [Fixed]

    • Correction sur le chargement de couches via apiKey (9b09a2bfcc40894b09fa86fcb47fe022f20723a6)
  • [Deprecated]

  • [Security]


Release 3.1.0

03/12/2020 : version 3.1.0

Release SDK Geoportail 2D/3D

Summary

  • iTowns 2.27.0, webGL2 et correctifs divers
  • Possibilité d'utiliser le SDK sans appel au service d'autoconfiguration
  • BREAKING CHANGE : SDK 3D compatible avec extensions geoportail pour itowns 2.3.0 + Utilisation du webGl2 par défaut

Changelog

  • [Added]

    • Ajout de fonctions de manipulation des overlays/markers (#69)
    • Interface pour l'option sprite en 3D (#71)
    • Ajout de l'option "reloadConfig" afin d'avoir le choix de charger le service d'autoconfiguration (#73)
  • [Changed]

    • MaJ iTowns 2.27.0 et reactivation affichage labels vecteur tuilé par défaut + paramètre sur l'utilisation du webGL2 (#72)
    • Possibilité de configurer le contrôle "overview" sans appel au service d'autoconfiguration (#73)
  • [Removed]

  • [Fixed]

    • Affichage des ponctuels GeoJSON en 3D (#70)
    • Eslint style fixes (#73)
  • [Deprecated]

  • [Security]


Release 3.0.15

30/09/2020 : version 3.0.15

Release SDK Geoportail 2D/3D

Summary

Correctif sur la gestion des couches vecteur tuilé

Changelog

  • [Added]

    • Ajout d'une option pour afficher les labels associés à une couche vecteur tuilé en 3D (#67)
  • [Changed]

    • layerChanged écoute la propriété mapbox-status (#66)
  • [Removed]

  • [Fixed]

    • correction du centrage par localisation (#63)
  • [Deprecated]

  • [Security]


Release 3.0.14

16/07/2020 : version 3.0.14

Release SDK Geoportail 2D/3D

Summary

Mise à jour des dépendances majeures du SDK, et correctifs divers sur le vecteur tuilé et la visu 3D

Changelog

  • [Added]

  • [Changed]

    • mise à jour ext-ol-3.0.12
    • mise à jour ext-itowns-2.2.12
    • mise à jour des dépendances
  • [Removed]

  • [Fixed]

    • meilleur gestion des options de la couche sur le format MapBox (702576386838dc893346e806fdb36362a129ae5c)
    • fix de la fonction de récupération des controls itowns (6dae22f0de5cdaba0d18671caef9c3a8c437f645)
    • fix du switch 3D->2D avec extent non définie (0d2df3a615e3af3a34bd6cbebe25fabc83993a24)
    • autorisation des callbacks anonymes (37bc34b395ff365559976ab4a22fe88fa3aa99d1)
    • ajout d'un id au canvas d'itowns (90b9dfd56c1f4b14cf96923be6eebd3c664df26a)
  • [Deprecated]

  • [Security]


Release 3.0.13

02/07/2020 : version 3.0.13

Release SDK Geoportail 2D/3D

Summary

Correctifs divers et ajouts

Changelog

  • [Added]

    • Ajout de l'option extent au chargement de la carte (#57)
    • Ajout guide de bonnes pratiques de developpement (84047c80a45333a692e6f28fc7bc4a7c56d233d6)
    • Ajout du control d'exageration du relief (#59)
    • Évolution sur le VectorTile 2D (mapbox) (#58) :
      • Ajout d'un exemple d’implémentation de menu
        • des thèmes,
        • des filtres,
        • de la légende
      • Ajout des événements sur les changements sur les "properties"
  • [Changed]

    • Mise à jour de l'extension géoportail pour openlayers en version 3.0.11
    • Mise à jour de l'extension géoportail pour itowns en version 2.2.10
  • [Fixed]

    • fix fonctionnalité noir et blanc avec Chrome v83+ (892c55bee89a2cac9448e28d80cc19ddb9617cdb)
    • fix sur la gestion des événements (#56)
    • fix la gestion des filtres attributaires sur le VectorTile 2D (mapbox)"

Release 3.0.12

23/04/2020 : version 3.0.12

Release SDK Geoportail 2D/3D

Summary

Correctifs divers et mises à jour des tests et du processus de build.

Changelog

  • [Changed]

    • utilisation des sources ES6 d'itowns pour la construction du bundle 3D (#54)
  • [Fixed]

    • mise à jour et corrections des tests unitaires
    • mise à jour de la documentation pour l'ajout de couches mapBox (#55)
    • fix sur les interactions du control de getFeatureInfo
    • fix sur la mise à jour du statut des styles mapbox

Release 3.0.11

02/04/2020 : version 3.0.11

Release SDK Geoportail 2D/3D

Summary

Mise à jour des librairies sous-jacentes et corrections sur le controle d'edition des styles mapbox.

Changelog

  • [Changed]

    • mise à jour de l'extension géoportail pour openlayers en version 3.0.10
    • mise à jour de l'extension géoportail pour itowns en version 2.2.9
    • mise à jour de la dépendance ol-mapbox-style en version 4.2.1
  • [Fixed]

    • fix sur le widget editor

Release 3.0.10

01/04/2020 : version 3.0.10

Release SDK Geoportail 2D/3D

Summary

Hotfix sur la gestion des sprites des couches mapbox et sur l'editeur de couches mapbox

Changelog

  • [Changed]

    • mise à jour de l'extensions géoporatil pour openlayers en version 3.0.9

Release 3.0.9

31/03/2020 : version 3.0.9

Release SDK Geoportail 2D/3D

Summary

Amelioration des outils de deboggage et de contribution Correction mineure sur le vecteur tuilé

Changelog

  • [Added]

    • [SDK2D/3D] Ajout des infos détaillées de build dans les bundles SDK
    • [github] Ajout de templates pour PR et issues
  • [Changed]

    • [SDK3D] Mise à jour de geoportal-extensions-itowns en version 2.2.8
    • [SDK2D/3D] Mise à jour de geoportal-extensions-openlayers en version 3.0.8
  • [Fixed]

    • [SDK3D] Correction de l'ajout des couches mapBox en 3D qui n'ont pas de propriétés de styles annexes
    • [SDK2D/3D] Corrections sur la gestion de cartes multiples au sein d'une même page (et adaptation exemples)
    • [SDK2D/3D] Forcage de la version de mapbox-gl-style-spec (cf https://github.com/openlayers/ol-mapbox-style/issues/261)
    • [SDK2D/3D] Mise à jour du plugin "terser-webpack-plugin"

Release 3.0.8

06/03/2020 : version 3.0.8

Release SDK Geoportail 2D/3D

Summary

Modifications sur la gestion des polyfills pour une meilleure compatibilité avec IE10/11 et corrections diverses sur l'interface cartographique pour meilleure gestion de l'affichage des couches mapBox.

Changelog

  • [Changed]

    • [SDK3D] - iTowns 2.19, GpExtItowns 2.2.7, threejs 0.113.2
  • [Removed]

    • [SDK2D/3D] suppression des polyfill sur la compatibilité IE10/11
    • [SDK2D/3D] suppression de la variable globale : olms
  • [Fixed]

    • [SDK2D] meilleure gestion des couches mapbox
    • [SDK3D] correction du switch 3D->2D avec couches mapbox
    • [SDK3D] correction de l'affichage de la configuration des couches mapBox dans le layerSwitcher en 3D"

Release 3.0.7

04/02/2020 : version 3.0.7

Release SDK Geoportail 2D/3D

Summary

Meilleure gestion des options pour les couches mapBox, fix de compatibilité avec internet explorer, et mise à jour d'iTowns en version 2.17

Changelog

  • [Changed]

    • [SDK2D/3D] modification des options et de l'interface pour les couches mapbox
    • [SDK2D/3D] modifications des options pour la gestion des filtres pour les couches mapbox
    • [SDK3D] iTowns v2.17
    • [SDK3D] adaptation/simplification centrage 3D
  • [Fixed]

    • [SDK2D/3D] meilleure gestion de la compatibilité IE10/11 (polyfill)
    • [SDK3D] meilleure gestion des paramètres pour les couches mapbox en 3D
    • [SDK2D/3D] correctif d'une exception sur la fonction de geolocalisation

Release 3.0.6

17/12/2019 : version 3.0.6

Release SDK Geoportail 2D/3D

Summary

  • Correctifs divers (getFeatureInfo, switch 2D-3D...)

Changelog

  • [Added]

    • [SDK3D] couches mapbox en 3D avec paramètre themes "optionnels" (pour portail)
  • [Changed]

    • [dev-workflow] Mise à jour du package geoportal-extensions-openlayers en version 3.0.6
  • [Fixed]

    • [SDK3D] fix interface du SDK avec celle des listeners de l'API iTowns
    • [SDK3D] fix divers sur l'ajout de couches en 3D
    • [SDK3D] fix de la fonction setAutoCenter qui ne se declenchait pas correctement

Release 3.0.5

06/12/2019 : version 3.0.5

Release SDK Geoportail 2D/3D

Summary

  • Première gestion du vecteur tuilé en 3D

Changelog

  • [Added]

    • [SDK2D] gestion de l'option "grayScaled" sur le vecteur tuilé
    • [SDK3D] ajout possible des couches vecteur tuilé simples via le SDK 3D
  • [Changed]

    • [SDK3D] adaptation du switch 2D<->3D pour conservation des couches vecteur tuilé
    • [SDK3D] intégration des extensions Géoportail pour iTowns en version 2.2.5
    • [SDK3D] intégration d'iTowns en version 2.16.0
  • [Fixed]

    • [SDK2D] Correctifs divers sur le vecteur tuilé 2D
    • [SDK3D] fix divers sur l'ajout des couches en 3D (mauvaises bbox, paramètres inutilisés...)

Release 3.0.4

21/11/2019 : version 3.0.4

Release SDK Geoportail 2D/3D

Summary

  • Correctif pour l'ajout de couches WMS en 3D
  • Correctif pour la gestion des styles KML en 3D
  • Mise à jour de la documentation pour les styles (2D et 3D)

Changelog

  • [Fixed]

    • Ajout de couches WMS en 3D : correction de la BBOX par défaut
    • Ajout de couches KML en 3D : correction du style par défaut
  • [Changed]

    • Mise à jour de la documentation pour les styles (2D et 3D)

Release 3.0.3

18/11/2019 : version 3.0.3

Release SDK Geoportail 2D/3D

Summary

  • Correctif sur les projections (bug de proj4 qui ne gère pas les projections géocentriques)
  • SDK 3D : correction d'un bug mineur sur la prise en compte du paramètre projection

Changelog

  • [Changed]

    • [dev-workflow] Mise à jour du package geoportal-extensions-openlayers en version 3.0.5

Release 3.0.2

21/10/2019 : version 3.0.2

Release SDK Geoportail 2D/3D

Summary

  • Mise à jour des packages extensions geoportail pour openlayers et itowns
  • Mise à jour des README
  • Corrections de bugs mineurs sur le SDK 3D

Changelog

  • [Changed]

    • [dev-workflow] Mise à jour du package geoportal-extensions-openlayers en version 3.0.4
    • [dev-workflow] Mise à jour du package geoportal-extensions-itowns en version 2.2.4
    • [dev-workflow] Mise à jour de la dépendance threejs en version 0.109 compatible avec itowns 2.15.3 embarqué par geoportal-extensions-itowns 2.2.4
  • [Fixed]

    • #41 - Mise à jour README-SDK-2D
    • #42 - Mise à jour README-SDK-3D
    • Retrait de paramètres inutiles ajoutés aux couches de type "elevation" (SDK-3D)

Release 3.0.1

24/09/2019 : version 3.0.1

Release SDK Geoportail 2D/3D

Summary

  • Correctifs et amélioration suite au passage ES6
  • [fix] ajout de KML/GPX/GeoJSON en 3D
  • [fix] prise en compte du style pour couches WMTS/WMS en 3D

[semver] :

- 2D : increment semver MINOR version
- 3D : increment semver MINOR version

Changelog

  • [Changed]

    • [dev-workflow] Mise à jour du package geoportal-extensions-openlayers en version 3.0.3
    • [dev-workflow] Mise à jour du package geoportal-extensions-itowns en version 2.2.3
  • [Fixed]

    • #45 - Dépendances manquantes ?

Release 3.0.0

06/09/2019 : version 3.0.0

Summary

  • Migration d'OpenLayers en version 5.3.0
  • Migration Itowns en version 2.13.1
  • Nouvelle fonctionnalité avec l'import de couche au format vecteur tuilé (MapBox)
  • Correctifs et amélioration suite au passage ES6
  • Migration Webpack en version > 4.0.0

[semver] :

- 2D : increment semver MAJOR version
- 3D : increment semver MINOR version

Changelog

  • [Changed]

    • [dev-workflow] Mise à jour du package geoportal-extensions-openlayers en version 3.0.1
    • [dev-workflow] Mise à jour du package geoportal-extensions-itowns en version 2.2.1
    • [dev-workflow] Le moteur 3d d'itowns est intégré au bundle
  • [Added]

    • Ajout du package ol-mapbox-style en version 4.2.1
    • Ajout de l'import de couche au format vecteur tuilé (MapBox)
    • Description de la variable globale Gp dans la jsdoc
    • Ajout des options natives pour le controle Graticule (ex. showLabels)
  • [Deprecated]

    • [dev-workflow] protocole HTTPS : ne plus executer les exemples sur un serveur en HTTP !
  • [Removed]

  • [Fixed]

    • #32 - Chemin par défaut de la librairie itowns embarquée dans le SDK
    • #38 - Encapsulation d'un composant dans une DIV utilisateur (option.div)
  • [Security]

    • [dev-workflow] Mise à jour des dependances (faille de sécurité)

Release 2.0.2

Summary

Version 2.0.2 des SDK 2D et 3D du Géoportail

  • mise à jour de la version des extensions Géoportail en dépendances (requêtes https par défaut) :

    • Extension Géoportail pour OpenLayers 2.1.2
    • Extension Géoportail pour iTowns 2.1.2
  • Fix fonctions setXYcenter et setAutoCenter du SDK 3D :

    • ajout de la projection demandée au proj4 d'itowns à la volée

Release 2.0.1

Summary

Version 2.0.1 du SDK Géoportail

Publication du SDK-2D / SDK-3D :

  • modification de la publication npm :
    • publications séparées des sdk 2d et 3d
    • publication sous forme de scoped packages dans le namespace @ignf-geoportal

Rappel des BREAKING CHANGES de la version 2.0.0

  • Les noms des bundles ont été modifiés :

      GpOl vers GpSDK2D
      GpOlItowns vers GpSDK3D
  • Renommages divers :

    AHN vers SDK
    mix vers 3d
    ol vers 2d
  • La méthode IMap:getLib() est remplacée par la méthode IMap:getViewMode()

      Modification des valeurs de retour:
      **library:ol3** est remplacée par **viewMode:2d**
      **library:itowns** est remplacée par **viewMode:3d**
  • L'attribut map.CLASSNAME est déprécié et à remplacer par map.getViewMode()

      La valeur **CLASSNAME:OL3** correspond à **viewMode:2d**
      La valeur **CLASSNAME:IT**  correspond à **viewMode:3d**
  • Le paramétrage de la fonction de chargement de la carte Gp.map.load() est modifié:

    Le paramètre **library** est remplacé par le paramètre **viewMode**
    La valeur du paramètre library **ol3** correspond à la valeur **2d** du paramètre viewMode
    La valeur du paramètre library **itowns** correspond à la valeur **3d** du paramètre viewMode

Release 2.0.0

Summary

Version 2.0.0 du SDK Géoportail

Publication du SDK-2D / SDK-3D :

  • Migration du projet sous Webpack ainsi que les sources en ES6 modules.
  • Ajout de tests unitaires 2D et 3D
  • Refactoring des Classes IMap, IT et OL

BREAKING CHANGES

  • Les noms des bundles ont été modifiés :

      GpOl vers GpSDK2D
      GpOlItowns vers GpSDK3D
  • Renommages divers :

      AHN vers SDK
      mix vers 3d
      ol vers 2d
  • La méthode IMap:getLib() est remplacée par la méthode IMap:getViewMode()

      Modification des valeurs de retour:
      **library:ol3** est remplacée par **viewMode:2d**
      **library:itowns** est remplacée par **viewMode:3d**
  • L'attribut map.CLASSNAME est déprécié et à remplacer par map.getViewMode()

      La valeur **CLASSNAME:OL3** correspond à **viewMode:2d**
      La valeur **CLASSNAME:IT** correspond à **viewMode:3d**
  • Le paramétrage de la fonction de chargement de la carte Gp.map.load() est modifié:

      Le paramètre **library** est remplacé par le paramètre **viewMode**
      La valeur du paramètre library **ol3** correspond à la valeur **2d** du paramètre viewMode
      La valeur du paramètre library **itowns** correspond à la valeur **3d** du paramètre viewMode

Release 1.3.0

Summary

Version 1.3.0 du SDK Géoportail

Publication du SDK-2D / SDK-3D :

  • downgrade de la version d'OpenLayers : 4.6.5 -> 4.2.0 :

  • issue #34 (Modification spécification/implémentation du GeoJSON par OpenLayers sur les réponses WFS)

  • issue #31 (Bouton de fermeture des popup)

Release 1.2.0

Summary

Version 1.2.0 du SDK Géoportail

Publication du SDK-2D :

Ce SDK est une surcouche des librairies suivantes :

Publication du SDK-3D :

Ce SDK est une surcouche des librairies suivantes :

Le SDK-3D Geoportail est une librairie javascript dont l'interface permet aux developpeurs web d'intégrer de manière simplifiée au sein d'une page web les données et les outils cartographiques du géoportail sur une carte 2D (basée sur OpenLayers), ou 3D (basée sur iTowns).

Les principales fonctionnalités disponibles sur une carte 3D sont les suivantes :

  • Centrage et positionnement de la vue sur un globe 3D (centre, orientation, inclinaison, et zoom)
  • Gestion de différentes couches de données cartographiques, dont les couches "MNT" (modèle numérique de terrain) de l'IGN, afin d'afficher le relief.
  • Ajout d'outils à l'interface cartographique (echelle, minivue...)
  • Fonction de bascule entre une vue 2D et 3D tout en conservant les paramètres courants de la carte (positionnement, couches de données, outils)

Changelog

SDK-3D :

Voir la [documentation du SDK](https://github.com/IGNF/geoportal-sdk#readme) et la [jsdoc](https://ignf.github.io/geoportal-sdk/latest/jsdoc/index.html)
qui a été mise à jour en indiquant pour chaque fonctionnalité si
celle-ci est disponible sur une carte 2D et/ou 3D.

Release 1.0.0

Summary

Version 1.0 du SDK Géoportail

  • Utilisation d'OpenLayers version 4.0 et de l'extension Géoportail associée version 1.0
  • Gestion du clic sur les données (vecteur, WMS et WMTS) via un nouveau controle GetFeatureInfo
  • Paramétrage des styles des couches vecteurs
  • Publication du SDK dans les dépots NPM
  • rotation possible de la carte
  • possibilité d'affichage des couches raster en Noir-et-Blanc
  • Option zoomToExtent pour les couches vecteur
  • Degugs divers ...

Changelog

Full Changelog

  • ajout d'une couche avec position=0 : pas bien pris en compte avec la librairie OpenLayers #12
  • Quelques PBs CSS sur les widgets du SDK #22
  • Le paramètre gfiFormat n'est pas pris en compte #20
  • Non affichage de la popup des markers #19
  • Affichage des informations (popup) sur un 'feature' de type KML #8
  • Affichage d'attributs non désirés dans les popups associées aux features #5
  • Définir un style par défaut pour les couches vecteur (KML, GPX, GeoJSON) #3
  • le paramétrage du parser KML OL3 empêche l'affichage des labels des ponctuels #2
  • Adaptation SDK à la version 1.0 de l'extension pour OpenLayers #25 (gcebelieu)
  • Publication du SDK possible dans npm #24 (gcebelieu)
  • Upgrade ol3 gp plugins to new release 0.12.0 #18 (lboulanger)
  • upgrade gp plugins (bug fix IE11 in geoportal-access-lib) #17 (lboulanger)
  • Upgrade SDK MP(editCoordinates) + filter feature properties #16 (gcebelieu)
  • Mise en place d'une option de rotation de la carte #15 (lowzonenose)
  • Feature change layer color2 #14 (pjjmunier)
  • fix #12 : prise en compte d'une position égale à zéro pour une couche OpenLayers #13 (lboulanger)
  • Feature change layer color2 #11 (pjjmunier)
  • Mise en place de l'option 'zoomToExtent' pour les couches KML #10 (lowzonenose)
  • fix #3 : Styling vector layers #9 (lboulanger)
  • Review taskrunner #7 (lowzonenose)
  • Feature ol3 upgrade #6 (lboulanger)
  • Feature control getfeatureinfo #4 (pjjmunier)
  • Feature wmts getfeatureinfo #1 (pjjmunier)