Skip to content

Commit

Permalink
#518 time={starttime} in a WMS URL is filled with endtime (#522)
Browse files Browse the repository at this point in the history
* ts-518 Inject time tile params better

* #518 Stop wms layer options for override wms parameters
  • Loading branch information
tariqksoliman committed Mar 27, 2024
1 parent 39b221a commit 1923fe5
Showing 1 changed file with 27 additions and 9 deletions.
36 changes: 27 additions & 9 deletions src/essence/Basics/Layers_/leaflet-tilelayer-middleware.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,25 @@ var colorFilterExtension = {
.replace(/{starttime}/g, this.options.starttime)
.replace(/{endtime}/g, this.options.endtime)
if (this.options.time && this.options.tileFormat === 'tms') {
url += `?starttime=${this.options.starttime}&time=${this.options.endtime}`
if (this.options.compositeTile === true) url += `&composite=true`
let paramDelimiter = '?'
let urlParams = false
if (url.indexOf('?') !== -1) {
urlParams = new URLSearchParams(url.split('?')[1])
paramDelimiter = '&'
}

if (urlParams == false || !urlParams.has('starttime')) {
url += `${paramDelimiter}starttime=${this.options.starttime}`
paramDelimiter = '&'
}
if (urlParams == false || !urlParams.has('time')) {
url += `${paramDelimiter}time=${this.options.endtime}`
paramDelimiter = '&'
}
if (urlParams == false || !urlParams.has('composite')) {
if (this.options.compositeTile === true)
url += `${paramDelimiter}composite=true`
}
}
return url
},
Expand Down Expand Up @@ -172,15 +189,15 @@ var wmsExtension = {
uppercase: true,
},

initialize: function (url, options) {
initialize: function (url, options, wmsOptions) {
this._url = url

var wmsParams = L.extend({}, this.defaultWmsParams)

// all keys that are not TileLayer options go to WMS params
for (var i in options) {
for (var i in wmsOptions) {
if (!(i in this.extensionOptions)) {
wmsParams[i] = options[i]
wmsParams[i] = wmsOptions[i]
}
}
options = L.setOptions(this, options)
Expand Down Expand Up @@ -293,10 +310,11 @@ L.tileLayer.colorFilter = function (url, options) {
`WARNING: WMS layer has no "layers" parameter in the url - ${url}`
)

return new L.TileLayer.WMSColorFilter(urlBaseString, {
...options,
...wmsOptions,
})
return new L.TileLayer.WMSColorFilter(
urlBaseString,
options,
wmsOptions
)
}

url = url.replace(/{t}/g, '_time_')
Expand Down

0 comments on commit 1923fe5

Please sign in to comment.