UNPKG

@ignf-geoportal/sdk-3d

Version:

French Geoportal SDK based on OpenLayers (2D) and iTowns (3D) libraries

1,169 lines (1,012 loc) 12.4 MB
/*! * @brief French Geoportal SDK based on OpenLayers (2D) and iTowns (3D) libraries * * This software is released under the licence CeCILL-B (Free BSD compatible) * @see http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.txt * @see http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.txt * @see http://www.cecill.info/ * * @copyright copyright (c) IGN * @license CeCILL-B * @author IGN * @version 3.5.6 * @date 12/06/2025 * @build * date : 6/12/2025, 9:14:14 AM * branch : tags/3.5.6 * commit : 8e7596e * dirty : true */ /*! * geoportal-extensions-openlayers. See https://github.com/IGNF/geoportal-extensions * @license https://github.com/IGNF/geoportal-extensions/blob/master/LICENCE.md * @version 3.4.6 */ /*! * geoportal-extensions-itowns. See https://github.com/IGNF/geoportal-extensions * @license https://github.com/IGNF/geoportal-extensions/blob/master/LICENCE.md * @version 2.5.1 */ /*! * iTowns. See http://www.itowns-project.org/ * @license https://github.com/iTowns/itowns/blob/master/LICENCE.md * @version 2.38.2 */ /*! * @overview ol-mapbox-style - Use Mapbox Style objects with OpenLayers * @copyright Copyright (c) 2016 openlayers * @license BSD 2-Clause "Simplified" License * See https://raw.githubusercontent.com/openlayers/ol-mapbox-style/master/LICENSE * @version 6.7.0 */ /*! * @overview OpenLayers. See http://openlayers.org/ * @copyright Copyright 2005-present, OpenLayers Contributors All rights reserved. * @license BSD 2-Clause "Simplified" License * See https://raw.githubusercontent.com/openlayers/openlayers/master/LICENCE.md * @version 6.9.0 */ /*! * Sortable -- JavaScript library for reorderable drag-and-drop lists on modern * browsers and touch devices. No jQuery required. Supports Meteor, AngularJS, * React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap. * * Released under MIT LICENSE * * Copyright Lebedev Konstantin <ibnRubaXa@gmail.com> * https://github.com/SortableJS/Sortable * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * @version v1.8.4 */ /*! * @overview es6-promise - a tiny implementation of Promises/A+. * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version v4.2.4 */ /*! * @overview Proj4js - Javascript reprojection library. * * @authors * - Mike Adair madairATdmsolutions.ca * - Richard Greenwood richATgreenwoodmap.com * - Didier Richard didier.richardATign.fr * - Stephen Irons stephen.ironsATclear.net.nz * - Olivier Terral oterralATgmail.com * - Calvin Metcalf cmetcalfATappgeo.com * * @copyright Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf * @license Licensed under MIT license * See https://raw.githubusercontent.com/proj4js/proj4js/master/LICENSE.md * @version 2.7.5 */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("node-fetch")); else if(typeof define === 'function' && define.amd) define("Gp", ["require"], factory); else if(typeof exports === 'object') exports["Gp"] = factory(require("node-fetch")); else root["Gp"] = factory(root[undefined]); })(window, function(__WEBPACK_EXTERNAL_MODULE__253__) { return /******/ (function(modules) { // webpackBootstrap /******/ // install a JSONP callback for chunk loading /******/ function webpackJsonpCallback(data) { /******/ var chunkIds = data[0]; /******/ var moreModules = data[1]; /******/ /******/ /******/ // add "moreModules" to the modules object, /******/ // then flag all "chunkIds" as loaded and fire callback /******/ var moduleId, chunkId, i = 0, resolves = []; /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; /******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { /******/ resolves.push(installedChunks[chunkId][0]); /******/ } /******/ installedChunks[chunkId] = 0; /******/ } /******/ for(moduleId in moreModules) { /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { /******/ modules[moduleId] = moreModules[moduleId]; /******/ } /******/ } /******/ if(parentJsonpFunction) parentJsonpFunction(data); /******/ /******/ while(resolves.length) { /******/ resolves.shift()(); /******/ } /******/ /******/ }; /******/ /******/ /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // object to store loaded and loading chunks /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched /******/ // Promise = chunk loading, 0 = chunk loaded /******/ var installedChunks = { /******/ 0: 0 /******/ }; /******/ /******/ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { /******/ return __webpack_require__.p + "chunk-" + chunkId + "-src.js" /******/ } /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ // This file contains only the entry chunk. /******/ // The chunk loading function for additional chunks /******/ __webpack_require__.e = function requireEnsure(chunkId) { /******/ var promises = []; /******/ /******/ /******/ // JSONP chunk loading for javascript /******/ /******/ var installedChunkData = installedChunks[chunkId]; /******/ if(installedChunkData !== 0) { // 0 means "already installed". /******/ /******/ // a Promise means "currently loading". /******/ if(installedChunkData) { /******/ promises.push(installedChunkData[2]); /******/ } else { /******/ // setup Promise in chunk cache /******/ var promise = new Promise(function(resolve, reject) { /******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; /******/ }); /******/ promises.push(installedChunkData[2] = promise); /******/ /******/ // start chunk loading /******/ var script = document.createElement('script'); /******/ var onScriptComplete; /******/ /******/ script.charset = 'utf-8'; /******/ script.timeout = 120; /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } /******/ script.src = jsonpScriptSrc(chunkId); /******/ /******/ // create error before stack unwound to get useful stacktrace later /******/ var error = new Error(); /******/ onScriptComplete = function (event) { /******/ // avoid mem leaks in IE. /******/ script.onerror = script.onload = null; /******/ clearTimeout(timeout); /******/ var chunk = installedChunks[chunkId]; /******/ if(chunk !== 0) { /******/ if(chunk) { /******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); /******/ var realSrc = event && event.target && event.target.src; /******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; /******/ error.name = 'ChunkLoadError'; /******/ error.type = errorType; /******/ error.request = realSrc; /******/ chunk[1](error); /******/ } /******/ installedChunks[chunkId] = undefined; /******/ } /******/ }; /******/ var timeout = setTimeout(function(){ /******/ onScriptComplete({ type: 'timeout', target: script }); /******/ }, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ document.head.appendChild(script); /******/ } /******/ } /******/ return Promise.all(promises); /******/ }; /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // on error function for async loading /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; /******/ /******/ var jsonpArray = window["webpackJsonpGp"] = window["webpackJsonpGp"] || []; /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); /******/ jsonpArray.push = webpackJsonpCallback; /******/ jsonpArray = jsonpArray.slice(); /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); /******/ var parentJsonpFunction = oldJsonpFunction; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(1); __webpack_require__(2); __webpack_require__(3); module.exports = __webpack_require__(4); /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sdkVersion", function() { return sdkVersion; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sdkDate", function() { return sdkDate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Editor", function() { return Editor; }); /* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); var _package_json__WEBPACK_IMPORTED_MODULE_0___namespace = /*#__PURE__*/__webpack_require__.t(5, 1); /* harmony import */ var _Utils_LoggerByDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); /* harmony import */ var _Utils_MapLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Map", function() { return _Utils_MapLoader__WEBPACK_IMPORTED_MODULE_2__["MapLoader"]; }); /* harmony import */ var _OpenLayers_OlMap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); /* harmony import */ var _Itowns_ItMap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(472); /* harmony import */ var _Itowns_CSS_ItMap_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(764); /* harmony import */ var _Itowns_CSS_ItMap_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_Itowns_CSS_ItMap_css__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _OpenLayers_CSS_OlMap_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(765); /* harmony import */ var _OpenLayers_CSS_OlMap_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_OpenLayers_CSS_OlMap_css__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(766); /* harmony import */ var _Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(34); /* harmony import */ var itowns__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(509); /* harmony import */ var itowns__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(itowns__WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(475); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Services", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["Services"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Error", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["Error"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Helper", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["Helper"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Protocols", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["Protocols"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["Logger"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "servicesDate", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["servicesDate"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "servicesVersion", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["servicesVersion"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayerUtils", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["LayerUtils"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProxyUtils", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["ProxyUtils"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorUtils", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["ColorUtils"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MathUtils", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["MathUtils"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olUtils", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olUtils"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olExtVersion", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtVersion"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olExtDate", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtDate"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "olExtended", function() { return geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtended"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "itownsExtVersion", function() { return geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__["itownsExtVersion"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "itownsExtDate", function() { return geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__["itownsExtDate"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "itownsExtended", function() { return geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__["itownsExtended"]; }); function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } /** * Global variable Gp. * * The following variables are aslo global : * - proj4 (exposed by geoportal extensions dependance), * - ol, * - itowns, * - eventbus (exposed by geoportal extensions dependance) * * @module Gp * @alias Gp * @desc * * This is the global variable that is exposed in the browser environment. * Content is composed of constructor, functions and properties... * * > Config: (...) * * > ColorUtils: (...) * > LayerUtils: (...) * > MathUtils: (...) * > ProxyUtils: (...) * * > olExtended: (...) * > olUtils: (...) * > olExtDate: "YYYY-MM-DD" * > olExtVersion: "X.X.X" * * > Error: (...) * > Helper: (...) * > Protocols: (...) * > Services: (...) * > servicesDate: "YYYY-MM-DD" * > servicesVersion: "X.X.X" * * > itownsExtended: (...) * > itownsExtVersion: "X.X.X" * > itownsExtDate: "YYYY-MM-DD" * * > Map: (...) * > sdkVersion: "X.X.X" * > sdkDate: "YYYY-MM-DD" */ // CSS // import openlayers // import des extensions openlayers // import itowns // import des extensions itowns var logger = _Utils_LoggerByDefault__WEBPACK_IMPORTED_MODULE_1__["default"].getLogger("SDK3D"); logger.log("Chargement SDK 3D..."); function deepCopy(source, target) { // FIXME Implementing Tail Call Elimination function tce(source, target) { for (var prop in source) { if (Object.prototype.hasOwnProperty.call(source, prop)) { if (!Object.prototype.hasOwnProperty.call(target, prop)) { target[prop] = source[prop]; } else if (_typeof(source[prop]) === "object") { tce(source[prop], target[prop]); } } } } return tce(source, target); } // ol extended + Services + Outils // itowns extended _Utils_MapLoader__WEBPACK_IMPORTED_MODULE_2__["MapLoader"].__class2d = _OpenLayers_OlMap__WEBPACK_IMPORTED_MODULE_3__["OlMap"]; _Utils_MapLoader__WEBPACK_IMPORTED_MODULE_2__["MapLoader"].__class3d = _Itowns_ItMap__WEBPACK_IMPORTED_MODULE_4__["ItMap"]; /** Geoportal Map loader */ /** Version */ var sdkVersion = _package_json__WEBPACK_IMPORTED_MODULE_0__.SDK3DVersion; /** Publication date */ var sdkDate = _package_json__WEBPACK_IMPORTED_MODULE_0__.date; // Editeur MapBox var Editor = geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtended"].style.Editor; // fusion des fonctionnalités openlayers // Gp.olExtended -> ol deepCopy(geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtended"], _Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7___default.a); // ol -> Gp.olExtended deepCopy(_Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7___default.a, geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_8__["olExtended"]); // "ol" is exposed into window (for a build bundle) with webpack. if (window && window.ol) { window.ol = _Utils_dist_openlayers_index__WEBPACK_IMPORTED_MODULE_7___default.a; } // fusion des fonctionnalités itowns // Gp.itownsExtended -> itowns deepCopy(geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__["itownsExtended"], itowns__WEBPACK_IMPORTED_MODULE_9__); // itowns -> Gp.itownsExtended deepCopy(itowns__WEBPACK_IMPORTED_MODULE_9__, geoportal_extensions_itowns__WEBPACK_IMPORTED_MODULE_10__["itownsExtended"]); // "itowns" is exposed into window (for a build bundle) with webpack. if (window && window.itowns) { window.itowns = itowns__WEBPACK_IMPORTED_MODULE_9__; } /***/ }), /* 5 */ /***/ (function(module) { module.exports = JSON.parse("{\"name\":\"geoportal-sdk\",\"version\":\"3.5.6\",\"date\":\"12/06/2025\",\"SDK2DVersion\":\"3.5.6\",\"SDK3DVersion\":\"3.5.6\",\"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\",\"scripts\":{\"setup\":\"npm install\",\"clean\":\"echo \\\"Warning: target not yet implemented!\\\" && exit 0\",\"check\":\"eslint src/\",\"test:serve\":\"webpack-dev-server --config webpack.test.serve.js\",\"doc:serve\":\"webpack-dev-server --config webpack.config.3d --content-base jsdoc/ --port 9001 --open\",\"sample:3d:serve\":\"webpack-dev-server --config webpack.config.3d --mode=development --https --open-page samples/index-3d-map.html --content-base . --output-public-path '/dist/3d/' --port 9001 --open\",\"sample:2d:serve\":\"webpack-dev-server --config webpack.config.2d --mode=development --https --open-page samples/index-2d-map.html --content-base . --output-public-path '/dist/2d/' --port 9001 --open\",\"stat:2d\":\"npm run build:2d:src -- --profile --json > map-2d.json\",\"stat:3d\":\"npm run build:3d:src -- --profile --json > map-3d.json\",\"clean:chunk\":\"rm dist/*/chunk*\",\"build\":\"npm-run-all --print-label --print-name build:*:*\",\"build:dev\":\"npm-run-all --print-label --print-name build:*:dev\",\"build:prod\":\"npm-run-all --print-label --print-name build:*:prod\",\"build:src\":\"npm-run-all --print-label --print-name build:*:src\",\"build:3d\":\"npm-run-all --print-label --print-name build:3d:*\",\"build:3d:src\":\"webpack --config webpack.config.3d --mode=none && npm run clean:chunk\",\"build:3d:dev\":\"webpack --config webpack.config.3d --mode=development && npm run clean:chunk\",\"build:3d:prod\":\"webpack --config webpack.config.3d --mode=production && npm run clean:chunk\",\"build:2d\":\"npm-run-all --print-label --print-name build:2d:*\",\"build:2d:src\":\"webpack --config webpack.config.2d --mode=none && npm run clean:chunk\",\"build:2d:dev\":\"webpack --config webpack.config.2d --mode=development && npm run clean:chunk\",\"build:2d:prod\":\"webpack --config webpack.config.2d --mode=production && npm run clean:chunk\"},\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/IGNF/geoportal-sdk.git\"},\"keywords\":[\"openlayers\",\"itowns\",\"geoportail\",\"geoplateforme\",\"webservice\",\"javascript\"],\"author\":\"IGNF\",\"license\":\"CECILL-B\",\"bugs\":{\"url\":\"https://github.com/IGNF/geoportal-sdk/issues\"},\"homepage\":\"https://geoservices.ign.fr/documentation/utilisation_web/sdk.html\",\"dependencies\":{\"whatwg-fetch\":\"3.0.0\"},\"devDependencies\":{\"@babel/core\":\"^7.8.3\",\"@babel/plugin-transform-runtime\":\"^7.8.3\",\"@babel/preset-env\":\"^7.8.3\",\"@mapbox/mapbox-gl-style-spec\":\"13.20.1\",\"babel-loader\":\"^8.0.5\",\"chai\":\"^4.2.0\",\"chalk\":\"^4.0.0\",\"copy-webpack-plugin\":\"^5.1.1\",\"core-js\":\"^3.6.4\",\"css-loader\":\"^3.4.2\",\"eslint\":\"^6.8.0\",\"eslint-config-standard\":\"^14.1.1\",\"eslint-loader\":\"^4.0.0\",\"eslint-plugin-import\":\"^2.17.2\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-promise\":\"^4.1.1\",\"eslint-plugin-standard\":\"^4.0.0\",\"exports-loader\":\"^0.7.0\",\"expose-loader\":\"^0.7.5\",\"fs-extra\":\"^9.0.0\",\"geoportal-extensions-itowns\":\"2.5.1\",\"geoportal-extensions-openlayers\":\"3.4.6\",\"handlebars\":\"^4.7.5\",\"handlebars-layouts\":\"^3.1.4\",\"html-webpack-plugin\":\"^4.0.4\",\"itowns\":\"2.38.2\",\"jsdoc-webpack-plugin\":\"^0.3.0\",\"loglevel\":\"1.6.6\",\"mini-css-extract-plugin\":\"^0.9.0\",\"mocha\":\"^7.1.1\",\"mocha-loader\":\"^5.0.0\",\"npm-run-all\":\"^4.1.5\",\"ol\":\"6.9.0\",\"ol-mapbox-style\":\"6.7.0\",\"optimize-css-assets-webpack-plugin\":\"^5.0.1\",\"path\":\"^0.12.7\",\"proj4\":\"2.7.5\",\"replace-bundle-webpack-plugin\":\"^1.0.0\",\"requirejs\":\"^2.3.6\",\"responsive-loader\":\"^1.2.0\",\"shelljs\":\"^0.8.3\",\"speed-measure-webpack-plugin\":\"^1.3.0\",\"string-template\":\"^1.0.0\",\"style-loader\":\"^1.1.3\",\"terser-webpack-plugin\":\"^2.0.0\",\"three\":\"0.137.5\",\"three.meshline\":\"1.2.0\",\"url-loader\":\"^4.0.0\",\"webpack\":\"^4.41.5\",\"webpack-cli\":\"^3.3.10\",\"webpack-dev-server\":\"^3.10.1\",\"webpack-merge\":\"^4.2.1\",\"webpack-node-externals\":\"^1.7.2\"}}"); /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); /* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(loglevel__WEBPACK_IMPORTED_MODULE_0__); var LoggerByDefault = { /** *logger statique * @param {String} [name="default"] - the logger name * * @returns {Object} logger */ getLogger: function getLogger(name) { // Substitute global constants configured at compile time // cf. webpack.config.js // on masque cette constante afin d'eviter "referenceerror not defined" "false".match(/true/) ? loglevel__WEBPACK_IMPORTED_MODULE_0__["disableAll"]() : loglevel__WEBPACK_IMPORTED_MODULE_0__["enableAll"](); var logname = name || "default"; return loglevel__WEBPACK_IMPORTED_MODULE_0__["getLogger"](logname); } }; /* harmony default export */ __webpack_exports__["default"] = (LoggerByDefault); /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* * loglevel - https://github.com/pimterry/loglevel * * Copyright (c) 2013 Tim Perry * Licensed under the MIT license. */ (function (root, definition) { "use strict"; if (true) { !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else {} }(this, function () { "use strict"; // Slightly dubious tricks to cut down minimized file size var noop = function() {}; var undefinedType = "undefined"; var isIE = (typeof window !== undefinedType) && ( /Trident\/|MSIE /.test(window.navigator.userAgent) ); var logMethods = [ "trace", "debug", "info", "warn", "error" ]; // Cross-browser bind equivalent that works at least back to IE6 function bindMethod(obj, methodName) { var method = obj[methodName]; if (typeof method.bind === 'function') { return method.bind(obj); } else { try { return Function.prototype.bind.call(method, obj); } catch (e) { // Missing bind shim or IE8 + Modernizr, fallback to wrapping return function() { return Function.prototype.apply.apply(method, [obj, arguments]); }; } } } // Trace() doesn't print the message in IE, so for that case we need to wrap it function traceForIE() { if (console.log) { if (console.log.apply) { console.log.apply(console, arguments); } else { // In old IE, native console methods themselves don't have apply(). Function.prototype.apply.apply(console.log, [console, arguments]); } } if (console.trace) console.trace(); } // Build the best logging method possible for this env // Wherever possible we want to bind, not wrap, to preserve stack traces function realMethod(methodName) { if (methodName === 'debug') { methodName = 'log'; } if (typeof console === undefinedType) { return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives } else if (methodName === 'trace' && isIE) { return traceForIE; } else if (console[methodName] !== undefined) { return bindMethod(console, methodName); } else if (console.log !== undefined) { return bindMethod(console, 'log'); } else { return noop; } } // These private functions always need `this` to be set properly function replaceLoggingMethods(level, loggerName) { /*jshint validthis:true */ for (var i = 0; i < logMethods.length; i++) { var methodName = logMethods[i]; this[methodName] = (i < level) ? noop : this.methodFactory(methodName, level, loggerName); } // Define log.log as an alias for log.debug this.log = this.debug; } // In old IE versions, the console isn't present until you first open it. // We build realMethod() replacements here that regenerate logging methods function enableLoggingWhenConsoleArrives(methodName, level, loggerName) { return function () { if (typeof console !== undefinedType) { replaceLoggingMethods.call(this, level, loggerName); this[methodName].apply(this, arguments); } }; } // By default, we use closely bound real methods wherever possible, and // otherwise we wait for a console to appear, and then try again. function defaultMethodFactory(methodName, level, loggerName) { /*jshint validthis:true */ return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments); } function Logger(name, defaultLevel, factory) { var self = this; var currentLevel; var storageKey = "loglevel"; if (name) { storageKey += ":" + name; } function persistLevelIfPossible(levelNum) { var levelName = (logMethods[levelNum] || 'silent').toUpperCase(); if (typeof window === undefinedType) return; // Use localStorage if available try { window.localStorage[storageKey] = levelName; return; } catch (ignore) {} // Use session cookie as fallback try { window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";"; } catch (ignore) {} } function getPersistedLevel() { var storedLevel; if (typeof window === undefinedType) return; try { storedLevel = window.localStorage[storageKey]; } catch (ignore) {} // Fallback to cookies if local storage gives us nothing if (typeof storedLevel === undefinedType) { try { var cookie = window.document.cookie; var location = cookie.indexOf( encodeURIComponent(storageKey) + "="); if (location !== -1) { storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1]; } } catch (ignore) {} } // If the stored level is not valid, treat it as if nothing was stored. if (self.levels[storedLevel] === undefined) { storedLevel = undefined; } return storedLevel; } /* * * Public logger API - see https://github.com/pimterry/loglevel for details * */ self.name = name; self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3, "ERROR": 4, "SILENT": 5}; self.methodFactory = factory || defaultMethodFactory; self.getLevel = function () { return currentLevel; }; self.setLevel = function (level, persist) { if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) { level = self.levels[level.toUpperCase()]; } if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) { currentLevel = level; if (persist !== false) { // defaults to true persistLevelIfPossible(level); } replaceLoggingMethods.call(self, level, name); if (typeof console === undefinedType && level < self.levels.SILENT) { return "No console available for logging"; } } else { throw "log.setLevel() called with invalid level: " + level; } }; self.setDefaultLevel = function (level) { if (!getPersistedLevel()) { self.setLevel(level, false); } }; self.enableAll = function(persist) { self.setLevel(self.levels.TRACE, persist); }; self.disableAll = function(persist) { self.setLevel(self.levels.SILENT, persist); }; // Initialize with the right level var initialLevel = getPersistedLevel(); if (initialLevel == null) { initialLevel = defaultLevel == null ? "WARN" : defaultLevel; } self.setLevel(initialLevel, false); } /* * * Top-level API * */ var defaultLogger = new Logger(); var _loggersByName = {}; defaultLogger.getLogger = function getLogger(name) { if (typeof name !== "string" || name === "") { throw new TypeError("You must supply a name when creating a logger."); } var logger = _loggersByName[name]; if (!logger) { logger = _loggersByName[name] = new Logger( name, defaultLogger.getLevel(), defaultLogger.methodFactory); } return logger; }; // Grab the current global log variable in case of overwrite var _log = (typeof window !== undefinedType) ? window.log : undefined; defaultLogger.noConflict = function() { if (typeof window !== undefinedType && window.log === defaultLogger) { window.log = _log; } return defaultLogger; }; defaultLogger.getLoggers = function getLoggers() { return _loggersByName; }; return defaultLogger; })); /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapLoader", function() { return MapLoader; }); /* harmony import */ var _LoggerByDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); /** * Geoportal map loader. * * Provide convenience method to create a Map and attach it to a HTML element. * * @module * @alias Gp.Map.load() */ var MapLoader = { /** * Initialize a Geoportal map in an HTML element. * * @method load * @static * @param {String | DOMElement} div - The HTML element or its id where the map will be loaded. * @param {Gp.MapOptions} [mapOptions] - Options for loading the map. * @example * var map = Gp.Map.load( * 'viewer-map', * { * apiKey: "YOUR_API_KEY", * reloadConfig: true, * isWebGL2: false, * enginePath3d: "path/to/itowns.js", * viewMode: "3d", * center: { * location: "rue pasteur, Saint-Mandé" * }, * zoom: 16, * tilt: 0, * azimuth: 45, * controlsOptions: { * mousePosition: {}, * search: { maximised : true } * }, * mapEventsOptions: { * "mapLoaded": window.initMap, * "layerChanged": window.callbackLayerChanged, * "zoomChanged": window.callbackZoomChanged, * "centerChanged": window.callbackCenterChanged, * "azimuthChanged": window.callbackAzimuthChanged, * "tiltChanged": window.callbackTiltChanged * }, * layersOptions: { * 'GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-EXPRESS.STANDARD': {} * } * } * ); * * // abonnement à l'evenement "mapLoaded" * map.listen("mapLoaded", function (e) { console.log("objet map", e); }); * * @returns {Gp.Map} - The Geoportal map. */ load: function load(div, mapOptions) { var logger = _LoggerByDefault__WEBPACK_IMPORTED_MODULE_0__["default"].getLogger("MapLoader.load"); // checking required parameter : div if (!div) { throw new Error("missing parameter div !"); } if (typeof div === "string") { div = document.getElementById(div); } if (!div) { throw new Error("HTML element with id [" + div + "] not found."); } if (!mapOptions) { mapOptions = {}; } // view mode by default if (!mapOptions.hasOwnProperty("viewMode")) { mapOptions.viewMode = "2d"; } // auto detect lib. loaded var Map2d = null; var Map3d = null; if (this.__class2d !== null && typeof this.__class2d === "function") { Map2d = this.__class2d; } if (this.__class3d !== null && typeof this.__class3d === "function") { Map3d = this.__class3d; } // TODO => autres implementations // creating the library map instance var objMap = null; var viewMode = mapOptions.viewMode; switch (viewMode) { case "2d": logger.trace("construction de la carte 2D"); if (Map2d === null || typeof Map2d !== "function") { throw new Error("library ol is not loaded !"); } objMap = new Map2d({ div: div, mapOptions: mapOptions }); break; case "3d": logger.trace("construction du globe 3D"); if (Map3d === null || typeof Map3d !== "function") { throw new Error("library itowns is not loaded !"); } objMap = new Map3d({ div: div, mapOptions: mapOptions }); break; default: throw new Error("not supported view mode"); } return objMap; } }; /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _OlMapLayers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10); /* harmony import */ var _OlMapVectorTile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(465); /* harmony import */ var _OlMapControls__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(466); /* harmony import */ var _OlMapListeners__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(470); /* harmony import */ var _OlMapView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(471); /* harmony import */ var _OlMapBase__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OlMap", function() { return _OlMapBase__WEBPACK_IMPORTED_MODULE_5__["OlMap"]; }); /***/ }), /* 10 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _OlMapBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11); /* harmony import */ var _Interface_IMap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); /* harmony import */ var geoportal_extensions_openlayers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34); /* harmony import */ var ol_layer_Vector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(192); /* harmony import */ var ol_layer_Image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(457); /* harmony import */ var ol_layer_Tile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(337); /* harmony import */ var ol_source_Vector__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(113); /* harmony import */ var ol_source_TileWMS__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(120); /* harmony import */ var ol_source_ImageWMS__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(136); /* harmony import */ var ol_source_OSM__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(460); /* harmony import */ var ol_format_GML2__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(462); /* harmony import */ var ol_format_GML3__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(464); /* harmony import */ var ol_Overlay__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(75); /* harmony import */ var ol_proj__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(15); /* harmony import */ var ol_tilegrid_WMTS__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(135); /* harmony import */ var ol_style__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(229); /* harmony import */ var ol_Collection__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(114); /* harmony import */ var ol_Observable__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(79); /* harmony import */ var ol_loadingstrategy__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(119); /** * Proprietes observables des couches pour le SDK */ _OlMapBase__WEBPACK_IMPORTED_MODULE_0__["OlMap"].LAYERPROPERTIES = { visible: "visibility", opacity: "opacity", zIndex: "position", grayScaled: "grayScaled", minResolution: "maxZoom", maxResolution: "minZoom" }; _OlMapBase__WEBPACK_IMPORTED_MODULE_0__["OlMap"].LAYERPROPERTIES["mapbox-status"] = "mapbox-status"; /** * Remove the layers listed to the map. * * @param {Array.<String>} layerIds - A list of layer's id or null. */ _OlMapBase__WEBPACK_IMPORTED_MODULE_0__["OlMap"].prototype.removeLayers = function (layerIds) { if (!_Interface_IMap__WEBPACK_IMPORTED_MODULE_1__["IMap"].prototype.removeLayers.apply(this, arguments)) { return; } // ici on sait que layerIds est un tableau var _layers = this._getLayersObj(layerIds); _layers.forEach(function (_layer, i, array) { this.libMap.removeLayer(_layer.obj); }, this); }; /** * Modify the layers'options listed to the map * * @param {Object} layersOptions - Layers to add to the map and their options. Associative array mapping official name of the Geoportal layer or the id of a personal layer (keys) with their properties (values given as {@link Gp.LayerOptions}). */ _OlMapBase__WEBPACK_IMPORTED_MODULE_0__["OlMap"].prototype.modifyLayers = function (layersOptions) { if (!_Interface_IMap__WEBPACK_IMPORTED_MODULE_1__["IMap"].prototype.modifyLayers.apply(this, arguments)) { return; } var layerIds = Object.keys(layersOptions); // on recupere les objets correspondants dejà sur la carte var _layerObjs = this._getLayersObj(layerIds); _layerObjs.forEach(function (_layerObj) { this.logger.trace("[modifyLayers] : modifying : [" + _layerObj.id + "]"); // traduction options ahn => options OlMap var commonOpts = this._applyCommonLayerParams(layersOptions[_layerObj.id]); // application des options OL aux couches OL // l'objet _layerObj.options sera mis à jour par le mécanisme des evenements. if (commonOpts.hasOwnProperty("opacity")) { this.logger.trace("[modifyLayers] : setting opacity of : [" + _layerObj.id + "] to : " + commonOpts.opacity); _layerObj.obj.setOpacity(commonOpts.opacity); } if (commonOpts.hasOwnProperty("visible")) { this.logger.trace("[modifyLayers] : setting visible of : [" + _layerObj.id + "] to : " + commonOpts.visible); _layerObj.obj.setVisible(commonOpts.visible); } if (commonOpts.hasOwnProperty("zIndex")) { this.logger.trace("[modifyLayers] : setting zIndex of : [" + _layerObj.id + "] to : " + commonOpts.zIndex); _layerObj.obj.setZIndex(commonOpts.zIndex); // pour forcer la prise en compte par le LayerSwitcher du zIndex quand il vaut zéro (extension OL) (cf. issue #12) if (commonOpts.zIndex === 0) { _layerObj.obj._forceNullzIndex = true; } // ou inversement pour ne plus forcer le zIndex à zéro lorsque ce n'est pas le cas if (commonOpts.zIndex !== 0 && _layerObj.obj._forceNullzIndex) { _layerObj.obj._forceNullzIndex = false; } } if (commonOpts.hasOwnProperty("minResolution")) { this.logger.trace("[modifyLayers] : setting minResolution of : [" + _layerObj.id + "] to : " + commonOpts.minResolution); _layerObj.obj.setMinResolution(commonOpts.minResolution); } if (commonOpts.hasOwnProperty("maxResolution")) { this.logger.trace("[modifyLayers] : setting maxResolution of : [" + _layerObj.id + "] to : " + commonOpts.maxResolution); _layerObj.obj.setMaxResolution(commonOpts.maxResolution); } if (commonOpts.hasOwnProperty("grayScaled")) { this.logger.trace("[modifyLayers] : setting grayScaled of : [" + _layerObj.id + "] to : " + commonOpts.grayScaled); this._changeLayerColor(_layerObj.id, commonOpts.grayScaled); } }, this); }; /** * Add a Raster Layer to the map * * @param {Object} layerObj - geoportalLayer to add. * @param {Gp.LayerOptions} layerObj.geoportalLayerID - options of the layer * * @private */ _OlMapBase__WEBPACK_IMPORTED_MODULE_0__["OlMap"].prototype._addRasterLayer = function (layerObj) { var layerId = Object.keys(layerObj)[0]; var layerOpts = layerObj[layerId]; // au cas où la couche ajoutée est un MNT, on essaye pas de l'ajouter en 2D if (layerOpts.type !== "elevation") { var constructorOpts = this._applyCommonLayerParams(layerOpts); switch (layerOpts.format.toUpperCase()) { case "WMS": { this.logger.trace("[_addRasterLayer] : ajout d'une couche WMS"); var params = {}; params.LAYERS = layerOpts.layers.join(","); if (layerOpts.version) { params.VERSION = layerOpts.version; } // au cas ou maintien de l'ancien nom de paramètre : // layerOpts.styleName (sans "s") layerOpts.stylesNames = layerOpts.stylesNames || layerOpts.stylesName; if (layerOpts.stylesNames) { if (Array.isArray(layerOpts.stylesNames)) { params.STYLES = layerOpts.stylesNames.join(); } else { this.logger.info("[_addRasterLayer] : 'stylesNames' parameter should be an array of style names (string)"); } } if (layerOpts.outputFormat) { params.FORMAT = layerOpts.outputFormat; } if (layerOpts.backgroundColor) { params.BGCOLOR = layerOpts.backgroundColor; params.TRANSPARENT = "FALSE"; } else { params.TRANSPARENT = "TRUE"; } var sourceWmsOpts = { url: layerOpts.url, params: params }; if (layerOpts.hasOwnProperty("projection")) { sourceWmsOpts.projection = layerOpts.projecti