arcgis的timeslider是对dojo slider二次封装,
项目需要,所有Map用统一样式的slider,所以写了一个common的dojo class,统一调用生成slider,作为对timeslider再次封装,感觉挺好用。
项目需要,所有Map用统一样式的slider,所以写了一个common的dojo class,统一调用生成slider,作为对timeslider再次封装,感觉挺好用。
这个slider不一定要在Map里使用,还可以在其他地方调用。只是要包含arcgis的js包,
先上JavaScript class的code:
/**
* yilei create for IES timeslider
*
*/
//dojo.provide("mapSlider.MyTimeslider");
dojo.declare("mapSlider.MyTimeSlider",null,{
map: null,
startDate:null,
endDate:null,
divId:"myTimeSlider",
timeUnit:"esriTimeUnitsHours",
labelImg:"",
// Can set the Array of custom Label, if not set will display the labels
labels:[],
labelFooterDateFormat: "dd MMM yyyy HH:mm",
labelTopDateFormat: "dd MMM yyyy HH:mm",
timeExtent:null,
//width:500,
timeSliderCssClass: "timeSlider",
topLabelCssClass:"sliderTopLabel",
// -1, Unlimited, otherwise specific values
noOfLabels: 3,
timesliderType:"temp",
sliderId:"tempId",
showTopLabel: true,
showPlayPauseBtn:true,
showPreviousNextBtn:true,
timeSlider:null,
onsliderChange:function(timeExtentObj){},
defaultIndex:0,
_self:null,
_unitTimeArray:{
"esriTimeUnitsYears":0,
"esriTimeUnitsMonths":0,
"esriTimeUnitsWeeks":0,
"esriTimeUnitsDays":1000 * 3600 * 24,
"esriTimeUnitsHours":1000 * 3600,
"esriTimeUnitsMinutes":1000 * 60,
"esriTimeUnitsSeconds":1000,
"esriTimeUnitsMilliseconds":0
},
/**********constructor function for init*************/
constructor:function(params){
dojo.mixin(this, params);
_self=this;
this.timeExtent=new esri.TimeExtent();
//_self._startDate=params.startDate;
//_self._endDate=params.endDate;
//_self._divName=params.divName;
//_self._timeUnit=params.timeUnit;
this.sliderId=getUniqueId(this.timesliderType);
//params.timeUnit?_self._timeUnit=params.timeUnit:"";
//params.width?_self._width=params.width:"";
},
createSlider:function(){
try
{
// Destroy the div and then create
//dojo.query("[id^="+this.timesliderType+"]")[0].destroy();
// Create new Div and add to divSlidersContainer
var ts