Beispiel #1
0
        protected override void OnClick()
        {
            IMxDocument pMxDoc           = ArcMap.Document;
            IMap        pMap             = pMxDoc.FocusMap;
            string      sampeMapFileName = "BasicHurricanes.mxd";

            if (pMap.LayerCount < 1)
            {
                MessageBox.Show("Before running this sample, load the associated file \'" + sampeMapFileName + "\'");
                return;
            }
            if (pMap.get_Layer(0).Name != "atlantic_hurricanes_2000")
            {
                MessageBox.Show("Before running this sample, load the associated file \'" + sampeMapFileName + "\'");
                return;
            }

            ITimeZoneFactory pTZFac = new TimeZoneFactoryClass();
            //making the first layer of the focused map time-aware
            IFeatureLayer pFLyr     = pMap.get_Layer(0) as IFeatureLayer;
            ITimeData     pTimeData = pFLyr as ITimeData;

            String         localTimeZoneId = pTZFac.QueryLocalTimeZoneWindowsID();
            ITimeReference timeRef         = pTZFac.CreateTimeReferenceFromWindowsID(localTimeZoneId);

            if (pTimeData.SupportsTime)
            {
                pTimeData.UseTime = true;
                ITimeTableDefinition pTimeDataDef = pFLyr as ITimeTableDefinition;
                pTimeDataDef.StartTimeFieldName = "Date_Time";

                pTimeDataDef.TimeReference = timeRef;
                ITimeDataDisplay pTimeAnimProp = pFLyr as ITimeDataDisplay;
                pTimeAnimProp.TimeIntervalUnits = esriTimeUnits.esriTimeUnitsHours;
                pTimeAnimProp.TimeInterval      = 12.0;
            }

            //
            IActiveView    pActiveView    = pMap as IActiveView;
            IScreenDisplay pScreenDisplay = pActiveView.ScreenDisplay;
            ITimeDisplay   pTimeDisplay   = pScreenDisplay as ITimeDisplay;

            pTimeDisplay.TimeReference = timeRef;

            ITime pStartTime = new TimeClass();

            pStartTime.Year = 2000; pStartTime.Month = 9; pStartTime.Day = 25;
            ITime pEndTime = new TimeClass();

            pEndTime.Year = 2000; pEndTime.Month = 9; pEndTime.Day = 30;

            ITimeExtent pTimeExt = new TimeExtentClass();

            pTimeExt.StartTime     = pStartTime;
            pTimeExt.EndTime       = pEndTime;
            pTimeDisplay.TimeValue = pTimeExt as ITimeValue;

            pActiveView.ContentsChanged();
        }
        protected override void OnClick()
        {
            IMxDocument pMxDoc   = ArcMap.Document;
            IMap        pMap     = pMxDoc.FocusMap;
            string      filename = "TimeAwareHurricanes.mxd";

            if (pMap.LayerCount < 1)
            {
                MessageBox.Show("Before running this sample, load the associated file \'" + filename + "\'");
                return;
            }
            if (pMap.get_Layer(0).Name != "atlantic_hurricanes_2000")
            {
                MessageBox.Show("Before running this sample, load the associated file \'" + filename + "\'");
                return;
            }
            ILayer selectedLayer = ArcMap.Document.SelectedLayer;

            if (selectedLayer == null)
            {
                MessageBox.Show("There is no selected layer.  Select a time-aware layer");
                return;
            }
            ITimeZoneFactory pTZFac    = new TimeZoneFactoryClass();
            IFeatureLayer    pFLyr     = selectedLayer as IFeatureLayer;
            ITimeData        pTimeData = pFLyr as ITimeData;

            //making the first layer of the focused map time-aware
            if (pTimeData.SupportsTime)
            {
                pTimeData.UseTime = true;
                ITimeDataDisplay pTimeAnimProp = pFLyr as ITimeDataDisplay;
                pTimeAnimProp.TimeOffsetUnits = esriTimeUnits.esriTimeUnitsYears;
                pTimeAnimProp.TimeOffset      = System.DateTime.Now.Year - 2000;
            }
            else
            {
                MessageBox.Show("Before running this sample, load the associated file \'" + filename + "\'");
                return;
            }

            IActiveView pActiveView = pMap as IActiveView;

            pActiveView.Refresh();
        }
        protected override void OnClick()
        {
            IMxDocument pMxDoc = ArcMap.Document;

            if (pMxDoc.SelectedLayer == null)
            {
                MessageBox.Show("There is no layer selected.  First select a time-aware layer.");
                return;
            }

            IFeatureLayer pFLyr     = pMxDoc.SelectedLayer as IFeatureLayer;
            ITimeData     pTimeData = pFLyr as ITimeData;

            if (!pTimeData.SupportsTime)
            {
                MessageBox.Show("Select a time-aware layer first.");
                return;
            }
            m_myLayerTimeExtent = pTimeData.GetFullTimeExtent();

            ITimeDataDisplay pTimeDataDisplayProperties = pFLyr as ITimeDataDisplay;
            esriTimeUnits    LayerIntervalUnits         = pTimeDataDisplayProperties.TimeIntervalUnits;
            double           LayerInterval = pTimeDataDisplayProperties.TimeInterval;
            ITime            startTime     = m_myLayerTimeExtent.StartTime;
            ITime            endTime       = (ITime)((IClone)startTime).Clone();

            switch (LayerIntervalUnits)
            {
            case esriTimeUnits.esriTimeUnitsYears:
                ((ITimeOffsetOperator)endTime).AddYears(LayerInterval, false, true);
                break;

            case esriTimeUnits.esriTimeUnitsMonths:
                ((ITimeOffsetOperator)endTime).AddMonths(LayerInterval, false, true);
                break;

            case esriTimeUnits.esriTimeUnitsDays:
                ((ITimeOffsetOperator)endTime).AddDays(LayerInterval);
                break;

            case esriTimeUnits.esriTimeUnitsHours:
                ((ITimeOffsetOperator)endTime).AddHours(LayerInterval);
                break;

            case esriTimeUnits.esriTimeUnitsMinutes:
                ((ITimeOffsetOperator)endTime).AddMinutes(LayerInterval);
                break;

            case esriTimeUnits.esriTimeUnitsSeconds:
                ((ITimeOffsetOperator)endTime).AddSeconds(LayerInterval);
                break;
            }

            ITimeExtent pTimeExt = new TimeExtentClass();

            pTimeExt.SetExtent(startTime, endTime);
            m_layerInterval = pTimeExt.QueryTimeDuration();


            m_sliderDlg = new TimeSliderDialog(this);
            m_sliderDlg.Show();
        }