diff --git a/src/Provider/URLBuilder.js b/src/Provider/URLBuilder.js index 8caa459771..d8ecbf1a0c 100644 --- a/src/Provider/URLBuilder.js +++ b/src/Provider/URLBuilder.js @@ -1,8 +1,9 @@ -import Extent from 'Core/Geographic/Extent'; - -const extent = new Extent('EPSG:4326', [0, 0, 0, 0]); - let subDomainsCount = 0; + +/** + * @param {string} url + * @returns {string} + */ function subDomains(url) { const subDomainsPtrn = /\$\{u:([\w-_.|]+)\}/.exec(url); @@ -57,8 +58,13 @@ export default { * // The resulting url is: * // http://server.geo/tms/15/2142/3412.jpg; * - * @param {Extent} coords - the coordinates - * @param {Source} source + * @param {Object} coords - tile coordinates + * @param {number} coords.row - tile row + * @param {number} coords.col - tile column + * @param {number} coords.zoom - tile zoom + * @param {Object} source + * @param {string} source.url + * @param {Function} source.tileMatrixCallback * * @return {string} the formed url */ @@ -88,8 +94,12 @@ export default { * // The resulting url is: * // http://server.geo/wms/BBOX=12,35,14,46&FORMAT=jpg&SERVICE=WMS * - * @param {Extent} bbox - the bounding box - * @param {Object} source + * @param {Object} bbox - the bounding box + * @param {number} bbox.west + * @param {number} bbox.south + * @param {number} bbox.east + * @param {number} bbox.north + * @param {Object} source - the source of data * @param {string} source.crs * @param {number} source.bboxDigits * @param {string} source.url @@ -102,11 +112,10 @@ export default { if (source.bboxDigits !== undefined) { precision = source.bboxDigits; } - bbox.as(source.crs, extent); - const w = extent.west.toFixed(precision); - const s = extent.south.toFixed(precision); - const e = extent.east.toFixed(precision); - const n = extent.north.toFixed(precision); + const w = bbox.west.toFixed(precision); + const s = bbox.south.toFixed(precision); + const e = bbox.east.toFixed(precision); + const n = bbox.north.toFixed(precision); let bboxInUnit = source.axisOrder || 'wsen'; bboxInUnit = bboxInUnit.replace('w', `${w},`) diff --git a/src/Source/WFSSource.js b/src/Source/WFSSource.js index 2c7ecc1728..5da80c52a6 100644 --- a/src/Source/WFSSource.js +++ b/src/Source/WFSSource.js @@ -1,6 +1,9 @@ import Source from 'Source/Source'; import URLBuilder from 'Provider/URLBuilder'; import CRS from 'Core/Geographic/Crs'; +import Extent from 'Core/Geographic/Extent'; + +const _extent = new Extent('EPSG:4326', [0, 0, 0, 0]); /** * An object defining the source of resources to get from a @@ -167,7 +170,8 @@ class WFSSource extends Source { } urlFromExtent(extent) { - return URLBuilder.bbox(extent, this); + extent.as(this.crs, _extent); + return URLBuilder.bbox(_extent, this); } extentInsideLimit(extent) { diff --git a/src/Source/WMSSource.js b/src/Source/WMSSource.js index efd9619bad..6c24401dea 100644 --- a/src/Source/WMSSource.js +++ b/src/Source/WMSSource.js @@ -1,5 +1,8 @@ import Source from 'Source/Source'; import URLBuilder from 'Provider/URLBuilder'; +import Extent from 'Core/Geographic/Extent'; + +const _extent = new Extent('EPSG:4326', [0, 0, 0, 0]); /** * An object defining the source of images to get from a @@ -136,7 +139,8 @@ class WMSSource extends Source { } urlFromExtent(extent) { - return URLBuilder.bbox(extent, this); + extent.as(this.crs, _extent); + return URLBuilder.bbox(_extent, this); } extentInsideLimit(extent) {