Skip to content

Commit

Permalink
Get times of nested layers from arcgis MapServer. Fixes #3
Browse files Browse the repository at this point in the history
  • Loading branch information
Biel Frontera committed Sep 1, 2015
1 parent 7b4f638 commit 9ad9ab7
Showing 1 changed file with 38 additions and 19 deletions.
57 changes: 38 additions & 19 deletions src/leaflet.timedimension.layer.wms.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ L.TimeDimension.Layer.WMS = L.TimeDimension.Layer.extend({
}
},

setParams: function (params, noRedraw) {
setParams: function(params, noRedraw) {
L.extend(this._baseLayer.options, params);
this._baseLayer.setParams(params, noRedraw);
if (this._currentLayer) {
Expand Down Expand Up @@ -205,7 +205,7 @@ L.TimeDimension.Layer.WMS = L.TimeDimension.Layer.extend({
this._setDefaultTime = this._setDefaultTime || (this._timeDimension && this._timeDimension.getAvailableTimes().length == 0);
this.setAvailableTimes(this._parseTimeDimensionFromCapabilities(data));
if (this._setDefaultTime && this._timeDimension) {
this._timeDimension.setCurrentTime(this._defaultTime);
this._timeDimension.setCurrentTime(this._defaultTime);
}
}).bind(this));
},
Expand All @@ -219,14 +219,23 @@ L.TimeDimension.Layer.WMS = L.TimeDimension.Layer.extend({
var times = null;
if (layerNameElement) {
var layer = layerNameElement.parent();
var dimension = layer.find("Dimension[name='time']");
if (dimension && dimension.text().length) {
times = dimension.text().trim();
} else {
var extent = layer.find("Extent[name='time']");
if (extent && extent.text().length) {
times = extent.text().trim();
}
times = this._getTimesFromLayerCapabilities(layer);
if (!times) {
times = this._getTimesFromLayerCapabilities(layer.parent());
}
}
return times;
},

_getTimesFromLayerCapabilities: function(layer) {
var times = null;
var dimension = layer.find("Dimension[name='time']");
if (dimension && dimension.length && dimension[0].textContent.length) {
times = dimension[0].textContent.trim();
} else {
var extent = layer.find("Extent[name='time']");
if (extent && extent.length && extent[0].textContent.length) {
times = extent[0].textContent.trim();
}
}
return times;
Expand All @@ -241,25 +250,35 @@ L.TimeDimension.Layer.WMS = L.TimeDimension.Layer.extend({
var defaultTime = 0;
if (layerNameElement) {
var layer = layerNameElement.parent();
var dimension = layer.find("Dimension[name='time']");
if (dimension && dimension.attr("default")) {
defaultTime = dimension.attr("default");
} else {
var extent = layer.find("Extent[name='time']");
if (extent && extent.attr("default")) {
defaultTime = extent.attr("default");
}
defaultTime = this._getDefaultTimeFromLayerCapabilities(layer);
if (defaultTime == 0) {
defaultTime = this._getDefaultTimeFromLayerCapabilities(layer.parent());
}
}
return defaultTime;
},

_getDefaultTimeFromLayerCapabilities: function(layer) {
var defaultTime = 0;
var dimension = layer.find("Dimension[name='time']");
if (dimension && dimension.attr("default")) {
defaultTime = dimension.attr("default");
} else {
var extent = layer.find("Extent[name='time']");
if (extent && extent.attr("default")) {
defaultTime = extent.attr("default");
}
}
return defaultTime;
},


setAvailableTimes: function(times) {
this._availableTimes = L.TimeDimension.Util.parseTimesExpression(times);
this._updateTimeDimensionAvailableTimes();
},

_updateTimeDimensionAvailableTimes: function(){
_updateTimeDimensionAvailableTimes: function() {
if ((this._timeDimension && this._updateTimeDimension) ||
(this._timeDimension && this._timeDimension.getAvailableTimes().length == 0)) {
this._timeDimension.setAvailableTimes(this._availableTimes, this._updateTimeDimensionMode);
Expand Down

0 comments on commit 9ad9ab7

Please sign in to comment.