ArcEngine-基于时间滑块实现时空动态分析

做的功能比较简单,实现了ArcGIS中时间滑块功能,数据使用的是自带的数据,我把它放在程序的根目录下了,可自行加载。
下面是主界面:可以看到这里有两个方法,说是两种方法,其实是第一种方法比较复杂,调试的不是很成功(手动尴尬),用这个数据的会报错 ,大家有需要的话可以自己调试下;第二种方法就是简化了第一种方法,虽然比较简单,但是麻雀虽小,五脏俱全,功能实现了。
在这里插入图片描述
时间滑块界面:贼简单,达到目的就罢工,,哈哈。
在这里插入图片描述

效果图

主要用到了一下两个函数:

       private void DoReplay(IFeatureLayer pFLyr)
       {
        try
        { 
           ITimeZoneFactory pTimeZoneFactory = new TimeZoneFactoryClass();

            ITimeData pTimeData = pFLyr as ITimeData;

            pTimeData.UseTime = true;

            String slocalTimeZoneWId = pTimeZoneFactory.QueryLocalTimeZoneWindowsID();

            ITimeReference pTimeReference = pTimeZoneFactory.CreateTimeReferenceFromWindowsID(slocalTimeZoneWId);

            if (!pTimeData.SupportsTime) return;

            pTimeData.UseTime = true;

            ITimeTableDefinition pTimeDataDef = pFLyr as ITimeTableDefinition;

            pTimeDataDef.StartTimeFieldName = "Date_Time";//设置时间属性为Date_time

            pTimeDataDef.TimeReference = pTimeReference;

            //获取图层时态数据时间

            pLayerTimeExtent = pTimeData.GetFullTimeExtent();

            //激活timer控件

            timer1.Enabled = true;

            pCount = 0;

        }

        catch (Exception Err)
        {

            string msg = Err.Message;

        }

    }
    private void Display(int count)
    {
        //IMap pMap = axMapControl1.Map;

        IActiveView pActiveView = pMap as IActiveView;

        IScreenDisplay pScreenDisplay = pActiveView.ScreenDisplay;

        ITimeDisplay pTimeDisplay = pScreenDisplay as ITimeDisplay;

        ITime startTime = pLayerTimeExtent.StartTime;

        ITime endTime = (ITime)((IClone)startTime).Clone();

        //每次递进24小时

        ((ITimeOffsetOperator)startTime).AddHours(24 * (count - 1));
        ((ITimeOffsetOperator)endTime).AddHours(24 * count);

        ITimeExtent pTimeExt = new TimeExtentClass();

        pTimeExt.SetExtent(startTime, endTime);

        pTimeExt.Empty = false;

        pTimeDisplay.TimeValue = pTimeExt as ITimeValue;

        pActiveView.Refresh();

    }

##代码下载

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值