[OpenLayers-Commits] r12238 -
sandbox/mpriour/temporal_map/openlayers/lib/OpenLayers/Control/TimeManager
commits-20090109 at openlayers.org
commits-20090109 at openlayers.org
Fri Aug 12 15:24:24 EDT 2011
Author: mpriour
Date: 2011-08-12 12:24:23 -0700 (Fri, 12 Aug 2011)
New Revision: 12238
Modified:
sandbox/mpriour/temporal_map/openlayers/lib/OpenLayers/Control/TimeManager/WMS.js
Log:
working time manager control for wms layer types
Modified: sandbox/mpriour/temporal_map/openlayers/lib/OpenLayers/Control/TimeManager/WMS.js
===================================================================
--- sandbox/mpriour/temporal_map/openlayers/lib/OpenLayers/Control/TimeManager/WMS.js 2011-08-12 04:00:58 UTC (rev 12237)
+++ sandbox/mpriour/temporal_map/openlayers/lib/OpenLayers/Control/TimeManager/WMS.js 2011-08-12 19:24:23 UTC (rev 12238)
@@ -42,14 +42,67 @@
initialize:function(options){
options = options||{};
OpenLayers.Util.extend(this,options);
- this.range = this.buildRange(this.layers);
+ var timeConfig = this.buildRangeAndIntervals(this.layers);
+ this.range = timeConfig.range;
+ this.intervals = timeConfig.intervals;
},
onTick:function(evt){
this.currentTime = evt.currentTime;
if(this.currentTime<=this.range[1] && this.currentTime>=this.range[0]){
- //TODO: Implement time tick for WMS layers
+ for(var i=0,len=this.layers.length;i<len;i++){
+ this.applyTime(layers[i],currentTime);
+ }
+ }else{
+ for(var i=0,len=this.layers.length;i<len;i++){
+ layers[i].setVisibility(false);
+ }
}
},
+
+ buildRangeAndIntervals:function(layer){
+ var range = [], intervals=[];
+ for(var i=0,len=layers.length;i<len;i++){
+ var lyr = layers[i];
+ if(lyr.timeInterval&&lyr.timeInterval.length==2){
+ if(!range[0]||lyr.timeInterval[0]<range[0]){
+ range[0]=lyr.timeInterval[0];
+ }
+ if(!range[1]||lyr.timeInterval[1]>range[1]){
+ range[1]=lyr.timeInterval[1];
+ }
+ }
+ else if(lyr.timeInterval&&lyr.timeInterval.length>2){
+ for(var j=0;j<lyr.timeInterval.length;j++){
+ if(OpenLayers.Util.indexOf(intervals,lyr.timeInterval[j])==-1){
+ intervals.push(lyr.timeInterval[j])
+ }
+ }
+ intervals.sort(function(a,b){
+ return (a>b)?-1:1
+ })
+ }
+ }
+ if(intervals.length){
+ if (!range[0] || intervals[0] < range[0]) {
+ range[0] = intervals[0];
+ }
+ if (!range[1] || intervals[1] > range[1]) {
+ range[1] = intervals[1];
+ }
+ }
+ return {'range':range,'intervals':intervals}
+ },
+
+ applyTime:function(layer,time){
+ if(layer.timeIntervals.length>2 && this.useLastValidInterval){
+ //TODO implement special case handling
+ }else{
+ //format time in ISO:8601 format
+ var isotime = OpenLayers.Date.toISOString(time);
+ layer.mergeNewParams({time:isotime});
+ }
+ },
+
CLASS_NAME:'OpenLayers.Control.TimeManager.WMS'
});
\ No newline at end of file
More information about the Commits
mailing list