Skip to content

Commit

Permalink
release 3.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
elias75015 committed Jun 7, 2023
2 parents 0304278 + 81451e9 commit d768b7f
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 166 deletions.
106 changes: 3 additions & 103 deletions DRAFT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,116 +6,16 @@
## Summary

L'autoconfiguration n'est plus appelée par les API. Pour la remplacer, nous générons quotidiennement, à partir des getCapabilities des services WMS et WMTS, des fichiers de configuration en JSON appelables par les API JavaScript Géoportail. Il y a un fichier par clé générique. L'avantage de ce nouveau processus (en plus de s'adapter au futur arrêt du service d'autoconfiguration) est que les fichiers de configuration JSON sont directement au format attendu par les API : il n'y a plus besoin de les parser pour en extraire les informations utiles puis pour les introduire dans une structure adéquate.
Par exemple, en renseignant "cartes" au paramètre apiKey, c'est le fichier cartesConfig.json qui sera chargé et directement utilisé par les API.

A noter que le multiKeys est toujours géré, c'est à dire qu'il est possible de renseigner plusieurs clés dans le paramètre apiKey.

Il est également possible de générer son propre fichier de configuration à partir d'une ou plusieurs clés. L'utilitaire est temporairement disponible ici : https://geoportal-configuration.onrender.com. Le paramètre permettant ensuite de charger sa configuration personnelle à partir du fichier local généré s'appelle désormais **customConfigFile**, auquel on associera le chemin vers le fichier de configuration json à charger.


## Changelog

* [Added]

- gestion et utilisation des fichiers de configuration en json au lieu de l'appel au service d'autoconfiguration (#106).

* [Changed]

- **BC** : paramètre "customConfigFile" pour un fichier de configuration local (#106)

##### Avant :

```javascript
var map = Gp.Map.load("viewerDiv", {
configUrl : "../resources/autoconf.js",
viewMode : "3d",
layersOptions : {
"ORTHOIMAGERY.ORTHOPHOTOS" : {
},
"ELEVATION.ELEVATIONGRIDCOVERAGE" : {
type : "elevation"
}
},
center : {
x : 2.357,
y : 48.83
},
controlsOptions : {
layerSwitcher : {
maximised : true
}
}
});
```


##### Maintenant :

```javascript
var map = Gp.Map.load("viewerDiv", {
customConfigFile : "chemin/vers/ma/config/customConfig.json",
viewMode : "3d",
layersOptions : {
"ORTHOIMAGERY.ORTHOPHOTOS" : {
},
"ELEVATION.ELEVATIONGRIDCOVERAGE" : {
type : "elevation"
}
},
center : {
x : 2.357,
y : 48.83
},
controlsOptions : {
layerSwitcher : {
maximised : true
}
}
});
```

* [Removed]

- appels au service d'autoconfiguration (#106)

- **BC** : Les originators sont actuellement utilisés par les API par le contrôle d'attribution. Celui-ci va lire les originators des couches visibles et automatiquement les afficher dans l'encart dédié selon le paramétrage courant de la vue cartographique (zoom, emprise). Désormais, il faudra renseigner les originators manuellement lors de l'ajout de couches Géoportail. (#106)

```javascript
"TRANSPORTNETWORKS.RAILWAYS" : {
originators: [{
"name": "Nom raccourci originator",
"attribution": "Titre complet originator",
"url": "http://www.url-vers-le-site-du-producteur.fr",
"constraints": [{
"crs":"EPSG:4326",
"bbox": {
"left": -63.09696,
"right": 55.826077,
"top": 51.073032,
"bottom": -21.385712
},
"minScaleDenominator": 0,
"maxScaleDenominator": 559082265,
"temporalExtent": ["2016-02-18","2016-02-18"]
}]
}]
}
```
* [Fixed]

- **BC** : Les metadatas sont utilisées dans les API par le contrôle gestionnaire de couches (LayerSwitcher). Celui-ci va lire les metadatas des couches ajoutées à la carte et les afficher dans l'encart d'information dédié du LayerSwitcher. **Pour les couches WMTS uniquement**, désormais, pour que les metadatas apparaissent dans l'onglet "informations" du LayerSwitcher, il faudra les renseigner manuellement à la configuration de la couche Géoportail lors de son ajout à la carte. (#106)
* [Deprecated]

```javascript
"ORTHOIMAGERY.ORTHOPHOTOS" : {
metadata: [
{
format: "xml",
url: "lien/Vers/Une/MetaDonnee.xml"
},
{
format: "xml",
url: "lien/Vers/Une/MetaDonnee.xml"
}
]
}
```
* [Security]
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "geoportal-sdk",
"version": "3.4.0",
"version": "3.4.1",
"date": "07/06/2023",
"SDK2DVersion": "3.4.0",
"SDK3DVersion": "3.4.0",
"SDK2DVersion": "3.4.1",
"SDK3DVersion": "3.4.1",
"description": "French Geoportal SDK based on OpenLayers (2D) and iTowns (3D) libraries",
"main": "dist/2d/GpSDK2D-src.js, dist/3d/GpSDK3d-src.js",
"module": "src/SDK2D.js, src/SDK3D.js",
Expand Down Expand Up @@ -72,8 +72,8 @@
"exports-loader": "^0.7.0",
"expose-loader": "^0.7.5",
"fs-extra": "^9.0.0",
"geoportal-extensions-itowns": "2.4.0",
"geoportal-extensions-openlayers": "3.3.0",
"geoportal-extensions-itowns": "2.4.1",
"geoportal-extensions-openlayers": "3.3.1",
"handlebars": "^4.7.5",
"handlebars-layouts": "^3.1.4",
"html-webpack-plugin": "^4.0.4",
Expand Down
36 changes: 18 additions & 18 deletions scripts/release/package-SDK2D.json
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
{
"homepage" : "https://geoservices.ign.fr/documentation/utilisation_web/sdk.html",
"main" : "dist/GpSDK2D-src.js",
"bugs" : {
"url" : "https://github.com/IGNF/geoportal-sdk/issues"
},
"description" : "French Geoportal SDK based on OpenLayers (2D)",
"date" : "03/04/2023",
"scripts" : {},
"directories" : {},
"dependencies" : {
"node-fetch" : "^2.6.1",
"geoportal-extensions-openlayers" : "https://raw.githubusercontent.com/IGNF/geoportal-extensions/feature/adaptations-gpf/build/scripts/release/geoportal-extensions-openlayers-3.2.21.tgz",
"xmldom" : "^0.1.27",
"ol" : "6.9.0"
},
"version" : "3.4.0",
"repository" : {
"url" : "https://github.com/IGNF/geoportal-sdk.git",
"type" : "git"
},
"name" : "@ignf-geoportal/sdk-2d",
"homepage" : "https://geoservices.ign.fr/documentation/utilisation_web/sdk.html",
"author" : "IGNF",
"bugs" : {
"url" : "https://github.com/IGNF/geoportal-sdk/issues"
},
"license" : "CECILL-B",
"description" : "French Geoportal SDK based on OpenLayers (2D)",
"files" : [
"dist/",
"src/",
"LICENCE.md",
"README.md",
"package.json"
],
"module" : "src/SDK2D.js",
"date" : "07/06/2023",
"name" : "@ignf-geoportal/sdk-2d",
"keywords" : [
"openlayers",
"geoportail",
"webservice",
"javascript"
],
"version" : "3.3.25",
"license" : "CECILL-B",
"module" : "src/SDK2D.js",
"scripts" : {},
"author" : "IGNF"
"dependencies" : {
"xmldom" : "^0.1.27",
"ol" : "6.9.0",
"node-fetch" : "^2.6.1",
"geoportal-extensions-openlayers" : "3.3.1"
}
}
42 changes: 21 additions & 21 deletions scripts/release/package-SDK3D.json
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
{
"bugs" : {
"url" : "https://github.com/IGNF/geoportal-sdk/issues"
"name" : "@ignf-geoportal/sdk-3d",
"homepage" : "https://geoservices.ign.fr/documentation/utilisation_web/sdk.html",
"dependencies" : {
"ol" : "6.9.0",
"geoportal-extensions-openlayers" : "3.3.1",
"itowns" : "2.38.2",
"geoportal-extensions-itowns" : "2.4.1",
"node-fetch" : "^2.6.1",
"xmldom" : "^0.1.27"
},
"scripts" : {},
"directories" : {},
"description" : "French Geoportal SDK based on OpenLayers (2D) and iTowns (3D) libraries",
"module" : "src/SDK3D.js",
"name" : "@ignf-geoportal/sdk-3d",
"main" : "dist/GpSDK3D-src.js",
"author" : "IGNF",
"homepage" : "https://geoservices.ign.fr/documentation/utilisation_web/sdk.html",
"license" : "CECILL-B",
"date" : "03/04/2023",
"version" : "3.3.25",
"files" : [
"dist/",
"src/",
"LICENCE.md",
"README.md",
"package.json"
],
"description" : "French Geoportal SDK based on OpenLayers (2D) and iTowns (3D) libraries",
"repository" : {
"type" : "git",
"url" : "https://github.com/IGNF/geoportal-sdk.git"
},
"version" : "3.4.0",
"scripts" : {},
"bugs" : {
"url" : "https://github.com/IGNF/geoportal-sdk/issues"
},
"keywords" : [
"openlayers",
"itowns",
"geoportail",
"webservice",
"javascript"
],
"dependencies" : {
"ol" : "6.9.0",
"geoportal-extensions-openlayers" : "https://raw.githubusercontent.com/IGNF/geoportal-extensions/feature/adaptations-gpf/build/scripts/release/geoportal-extensions-openlayers-3.2.21.tgz",
"geoportal-extensions-itowns" : "https://raw.githubusercontent.com/IGNF/geoportal-extensions/feature/adaptations-gpf/build/scripts/release/geoportal-extensions-itowns-2.3.10.tgz",
"xmldom" : "^0.1.27",
"node-fetch" : "^2.6.1",
"itowns" : "2.38.2"
},
"repository" : {
"url" : "https://github.com/IGNF/geoportal-sdk.git",
"type" : "git"
}
"license" : "CECILL-B",
"date" : "07/06/2023"
}
65 changes: 46 additions & 19 deletions src/Interface/IMapBase.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import Logger from "../Utils/LoggerByDefault";
import { transform as olTransformProj } from "ol/proj";
import {
Services,
ProxyUtils
ProxyUtils,
ColorUtils
} from "geoportal-extensions-openlayers";
import { MapLoader } from "../Utils/MapLoader";

Expand Down Expand Up @@ -65,32 +66,58 @@ var switch2D3D = function (viewMode) {
case "ROUTE":
case "ISOCURVE":
case "ELEVATIONPATH":
var control = this.getLibMapControl(layer.options.control.toLowerCase());

// on distingue le cas d'un import de calcul et un calcul en cours...
oldMap.layersOptions[layer.id].controlOptions = (Object.keys(layer.options.controlOptions).length === 0)
? this.getLibMapControl(layer.options.control.toLowerCase()).getData() : layer.options.controlOptions;
// on distingue le cas d'un import de calcul et un calcul en cours...
geojsonStr = (Object.keys(layer.options.data).length === 0)
? this.getLibMapControl(layer.options.control.toLowerCase()).getGeoJSON() : layer.options.data;
oldMap.layersOptions[layer.id].controlOptions = (Object.keys(layer.options.controlOptions).length === 0) ? control.getData() : layer.options.controlOptions;

geojsonStr = (Object.keys(layer.options.data).length === 0) ? control.getGeoJSON() : layer.options.data;

// on parse le geojson pour y ajouter des properties de styles (2D et 3D)
geojsonObj = JSON.parse(geojsonStr);

// transmettre les styles du controles 2D vers 3D
var styles = control.getStyle();
geojsonObj.features.forEach(feature => {
if (!feature.properties) {
feature.properties = {};
}
// style propre à la 3D
if (feature.geometry.type === "Point") {
feature.properties.icon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAmCAYAAABpuqMCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAQxSURBVFiF3ZldaBxVFMd/d2ayTRtjQpo2mlilWBEMshoj+FAERZIHIdA3iw+V1icRREFIQAKNgsUHQfBFwZI2WgWxqYUiVTDBBj9ILC5Nu2tjdjemsR+mSZNNNvsxO8eHTTRuk+zMnQmCf9iHnXvO+Z//nDvn3rmjRIT/C6zAI4ZVFRbtKDpQNCM0AvXANIo/EC4inMbmLBFZDJJaBVaZJ9Sd2HQCrwDbXHikgfewOMKPMh9ECsGIeVx1IHxEsQJeMY3iEMNy2m8aht8AtKpOhH70hADUI/TTqjr9puKvMsUE3vabxCp0MSJHdJ31xRSnVj9BVPcfOCj26U45PTHFh30c/am1EaaxuF+nKejd1WLX2gwhAPXL8T3De2XCqooKbuCu/eoiTZ6dXtch75WxaMeNENOyOXx8kHOpGMPOIudSMQ4fH8S0bBcs25Z5PMF7ZVpVL3BgQxvTsvn6+kVq6sK3jc3NRGhraKZgl9t9HGNEXvCSmvfKKJrL2nQfHVpTCEBNXZjuo0OB8JTAu5jiXmtjPL3vLl/jbnlKoNPN6spaVFbt8jXulqcEOmKSZS0yi5O+xt3ylEBHTLSsxbf913yNu+UpgU4DKE/Sc3AvczORNcfmZiL0HNwbCE8JvItxWDvJ1SjYFm0NzZzpG2RpIYbIIksLMc70Dbpsy+54SqCzzlQAY8B9Xsk8YAJ4gBHJe3HyXpkRyaN407OfN7zlVQjobjTv4BgQ1/ItjzjV9Oo46okZEBuhS8u3PDoZEDf7t9vg903zBLBfP8C/4cAnD87teclIGyFlLoVyllWh8vmQYRgVAOI4OQmFciKSFZFsMpmck1UC/Il5VNViEgHu9StkQYyb7bNNH1wrmDm3PgqWUHLBhl+SyeRV/6czLepJDAbw8fos4HTNb+/9PFv9u3YMU/X6f38/L98B7/gJ8U2uasiPEADTcRqDOozoBn7WcbzqmFOvpnYM+uTPpvP5SDBiimvP8xRPKV3DFpV7fX7HyYyD44M96xicmpqaSgd3TDQsv6J4zYvLx5nqsz/kK29qcyq5kFpafD+RSMSKf4P+CvCY+hJFRzmzmB2KPTvb+JnX8CsdzDGM8/F4/PrqseC/AggvZlGXtyipXc8kLcbCy6mdrg/6lBIbR41DYXR8cjIqIoW17IIXc17+nHnEOnS3VfhiHQt5d7HmVMK2Nn6+DHLiOGMmRLdMVI+NymjZ9Sf4abaMqZbQp01G/rnS60P5rT8duNXw1TpuGaXksmMYlxKJxLiIt23NponhKVV5a874rdZwmlYuTTvmjWdmGj9Mifl3kkpJ2hGJGY4THb9yJS4i2p0t+Gm2ggHJxMNb94eNzIAJZgEKbyxsP5kS00ZJSkG0oFQ0mZyYkKDuqIhs6u/7hyt75luM2RMPVfft3rW7bU9T0z2bxbV50+w/wF8f81R5OpwBhwAAAABJRU5ErkJggg==";
}
// style pour la 2D et 3D
if (feature.geometry.type === "LineString") {
feature.properties["stroke"] = "#00B798";
feature.properties["stroke-opacity"] = 0.9;
feature.properties["stroke-width"] = 12;
}
// style pour la 2D et 3D
if (feature.geometry.type === "Polygon") {
feature.properties["fill"] = "#00B798";
feature.properties["fill-opacity"] = 0.7;
// INFO
// le style est propre à la 3D
// les controles ne fournissent pas les styles des icones
// le style est present dans le format
feature.properties.icon = feature.properties["marker-symbol"];
// FIXME transmettre l'offset !
} else if (feature.geometry.type === "LineString") {
// style pour la 2D et 3D
var colorStroke = {};
if (ColorUtils.isRGB(styles.getStroke().getColor())) {
colorStroke = ColorUtils.rgbaToHex(styles.getStroke().getColor());
} else {
colorStroke = {
hex : styles.getStroke().getColor(),
opacity : 1
};
}
feature.properties["stroke"] = colorStroke.hex || "#00B798";
feature.properties["stroke-opacity"] = colorStroke.opacity || 0.9;
feature.properties["stroke-width"] = styles.getStroke().getWidth() || 12;
} else if (feature.geometry.type === "Polygon") {
// style pour la 2D et 3D
var colorFill = {};
if (ColorUtils.isRGB(styles.getFill().getColor())) {
colorFill = ColorUtils.rgbaToHex(styles.getFill().getColor());
} else {
colorFill = {
hex : styles.getFill().getColor(),
opacity : 1
};
}
feature.properties["fill"] = colorFill.hex || "#00B798";
feature.properties["fill-opacity"] = colorFill.opacity || 0.7;
} else {
// ...
}
});
oldMap.layersOptions[layer.id].data = JSON.stringify(geojsonObj);
Expand Down

0 comments on commit d768b7f

Please sign in to comment.