Changeset 6264
- Timestamp:
- 02/13/08 21:40:29 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sandbox/achipa/openlayers/examples/timed-point-track-markers.html
r6180 r6264 59 59 function setTime() { 60 60 var targetdate = OpenLayers.DateTime.fromRFC3339(OpenLayers.Util.getElement('date').value); 61 lineLayer.permanentHighlight = OpenLayers.Util.getElement('phighlight').checked; 62 lineLayer.interpolatePoints = OpenLayers.Util.getElement('ipoints').checked; 61 63 lineLayer.setDateTime(targetdate); 62 64 } … … 69 71 Load GeoRSS URL: <input type="text" id="url" size="50" /><input type="submit" onclick="addUrl(); return false;" value="Load Feed" onsubmit="addUrl(); return false;" /> 70 72 </form> <form onsubmit="return false;"> 73 <input type="checkbox" id="phighlight"> permanentHighlight <BR> 74 <input type="checkbox" id="ipoints"> interpolatePoints <BR> 71 75 Selected time: <input type="text" id="date" value="1995-12-12T09:20:00Z" > <input type="submit" onSubmit="setTime(); return false;" onClick="setTime(); return false;"> 72 76 </form> sandbox/achipa/openlayers/lib/OpenLayers/Layer.js
r6180 r6264 1089 1089 return null; 1090 1090 1091 return this.datetimeIntervals[ datetimeIntervals.length -1].to;1091 return this.datetimeIntervals[this.datetimeIntervals.length -1].to; 1092 1092 }, 1093 1093 sandbox/achipa/openlayers/lib/OpenLayers/Layer/TimedPointTrack.js
r6180 r6264 45 45 permanentHighlight: false, 46 46 47 /** 48 * APIProperty: 49 * defaultStyle - {OpenLayers.Style} optional. The style for the higlight, by 50 * default this is 51 * 52 * fillColor: "#223322", 53 * fillOpacity: 0.5, 54 * strokeColor: "#999999", 55 * strokeOpacity: 1, 56 * strokeWidth: 1, 57 * strokeLinecap: "round", 58 * pointRadius: 6, 59 * pointStyle: "dot" 60 */ 61 defaultStyle: { 62 fillColor: "#223322", 63 fillOpacity: 0.5, 64 strokeColor: "#999999", 65 strokeOpacity: 1, 66 strokeWidth: 1, 67 strokeLinecap: "round", 68 pointRadius: 6, 69 pointStyle: "dot" 70 }, 47 71 /** 48 72 * Constructor: OpenLayers.TimedPointTrack … … 59 83 new OpenLayers.Geometry.Point(0,0), 60 84 {}, 61 new OpenLayers.Style({ 62 fillColor: "#223322", 63 fillOpacity: 0.5, 64 strokeColor: "#999999", 65 strokeOpacity: 1, 66 strokeWidth: 1, 67 strokeLinecap: "round", 68 pointRadius: 6, 69 pointStyle: "dot" 70 }) 85 new OpenLayers.Style(this.defaultStyle) 71 86 ); 72 87 this.events.register("datetimechanged", this, this.updateHighlight); 73 88 }, 74 89 90 /** 91 * APIMethod: updateHighlight 92 * Updates highlight location according to the layers' current time, 93 * usually called usually from function registered with the "datetimechanged" 94 * event of the layer 95 * 96 */ 97 75 98 updateHighlight: function(){ 76 99 this.renderer.eraseFeatures([this.highlight]); 100 if (!this.permanentHighlight && (this.getStartDateTime() > this.currentDateTime.to || this.getStopDateTime() < this.currentDateTime.from)) 101 return; 102 77 103 var closestpoint; 78 104 var closesttime = 0; 105 var closestfeature = 0; 79 106 for (var i=0; i < this.features.length; i++){ 80 107 var atime = 0; … … 85 112 closesttime = atime; 86 113 closestpoint = this.features[i].geometry.components[0]; 87 } 88 } 114 closestfeature = i; 115 } 116 } 117 118 var closestgeom = this.features[closestfeature].geometry; 119 if (this.interpolatePoints && closestgeom.components && closestgeom.components.length) { 120 closestpoint = new OpenLayers.Geometry.Point(0,0); 121 for (var i=0; i < closestgeom.components.length; i++) 122 closestpoint.move(closestgeom.components[i].x, closestgeom.components[i].y); 123 124 closestpoint.x /= closestgeom.components.length; 125 closestpoint.y /= closestgeom.components.length; 126 127 } 128 89 129 this.highlight.geometry = closestpoint.clone(); 90 130 this.drawFeature(this.highlight); … … 102 142 */ 103 143 updateDateTimeInterval: function() { 104 var begin = Date (2038,0,0);105 var end = Date (1970,0,0);144 var begin = Date.UTC(2038,0,0); 145 var end = Date.UTC(1970,0,0); 106 146 for(var i = 0; i < this.features.length; i++) { 107 147 if (this.features[i].attributes["pubdate"]) { … … 113 153 } 114 154 } 115 this.datetimeIntervals = new Array(new OpenLayers.DateTime(begin, end));155 this.datetimeIntervals = [new OpenLayers.DateTime(begin, end)]; 116 156 }, 117 157
