UNPKG

qwc2

Version:
9 lines 3.85 kB
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)}function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==_typeof(i)?i:i+""}function _toPrimitive(t,r){if("object"!=_typeof(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=_typeof(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}/** * Copyright 2015 GeoSolutions Sas * Copyright 2016-2024 Sourcepole AG * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. */import ol from"openlayers";import ConfigUtils from"../../../utils/ConfigUtils";import CoordinatesUtils from"../../../utils/CoordinatesUtils";function getWMSURLs(urls){return urls.map(function(url){return url.split("?")[0]})}export function createWMTSSource(options){var _options$layerName,_options$matrixIds,_options$style,_options$wrapX,_options$requestEncod;var urls=getWMSURLs(Array.isArray(options.url)?options.url:[options.url]).map(function(url){if(options.rev){return url+"?"+options.rev}else{return url}});var projection=ol.proj.get(options.projection);var resolutions=options.resolutions;var matrixIds=new Array(options.resolutions.length);// generate matrixIds arrays for this WMTS for(var z=0;z<options.resolutions.length;++z){matrixIds[z]=options.tileMatrixPrefix!==""?options.tileMatrixPrefix+":"+z:z}var extent=options.bbox?CoordinatesUtils.reprojectBbox(options.bbox.bounds,options.bbox.crs,options.projection):null;return new ol.source.WMTS(_objectSpread({urls:urls,layer:(_options$layerName=options.layerName)!==null&&_options$layerName!==void 0?_options$layerName:options.name,format:options.format,projection:projection?projection:null,matrixSet:options.tileMatrixSet,tileGrid:new ol.tilegrid.WMTS({extent:extent,origin:[options.originX,options.originY],resolutions:resolutions,matrixIds:(_options$matrixIds=options.matrixIds)!==null&&_options$matrixIds!==void 0?_options$matrixIds:matrixIds,tileSize:options.tileSize||[256,256]}),style:(_options$style=options.style)!==null&&_options$style!==void 0?_options$style:"",wrapX:(_options$wrapX=options.wrapX)!==null&&_options$wrapX!==void 0?_options$wrapX:false,requestEncoding:(_options$requestEncod=options.requestEncoding)!==null&&_options$requestEncod!==void 0?_options$requestEncod:"REST"},options.sourceConfig||{}))}export default{create:function create(options){return new ol.layer.Tile(_objectSpread({minResolution:options.minResolution,maxResolution:options.maxResolution,preload:ConfigUtils.getConfigProp("tilePreloadLevels",null,0),source:createWMTSSource(options)},options.layerConfig||{}))},update:function update(layer,newOptions,oldOptions){if(newOptions.rev!==oldOptions.rev){layer.setSource(createWMTSSource(newOptions))}}};