/// <summary> /// Creates a Temporal Layer using the specified feature class and add it to the map. /// </summary> /// <param name="featureClass">The feature class to use for the temporal layer.</param> /// <param name="eventFieldName">Indicates the feature class column that identifies or groups temporal observations with time series.</param> /// <param name="temporalFieldName">Identifies the temporal field, which must be a field type whose data can be converted to a date value.</param> private void AddTemporalLayer(IFeatureClass featureClass, string eventFieldName, string temporalFieldName) { ITemporalLayer temporalFeatureLayer = new TemporalFeatureLayerClass(); IFeatureLayer2 featureLayer = temporalFeatureLayer as IFeatureLayer2; ILayer layer = temporalFeatureLayer as ILayer; ITemporalRenderer temporalRenderer = new CoTrackSymbologyRendererClass(); ITemporalRenderer2 temporalRenderer2 = (ITemporalRenderer2)temporalRenderer; IFeatureRenderer featureRenderer = temporalRenderer as IFeatureRenderer; ITrackSymbologyRenderer trackRenderer = temporalRenderer as ITrackSymbologyRenderer; if (featureLayer != null) { featureLayer.FeatureClass = featureClass; } if (featureRenderer != null) { temporalRenderer.TemporalObjectColumnName = eventFieldName; temporalRenderer.TemporalFieldName = temporalFieldName; temporalFeatureLayer.Renderer = featureRenderer; } if (trackRenderer != null) { //Create green color value IRgbColor rgbColor = new RgbColorClass(); rgbColor.RGB = 0x00FF00; //Create simple thin green line ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass(); simpleLineSymbol.Color = (IColor)rgbColor; simpleLineSymbol.Width = 1.0; //Create simple renderer using line symbol ISimpleRenderer simpleRenderer = new SimpleRendererClass(); simpleRenderer.Symbol = (ISymbol)simpleLineSymbol; //Apply line renderer as track symbol and enable track rendering trackRenderer.TrackSymbologyRenderer = (IFeatureRenderer)simpleRenderer; trackRenderer.ShowTrackSymbologyLegendGroup = true; temporalRenderer2.TrackRendererEnabled = true; } if (layer != null) { ArcMap.Document.FocusMap.AddLayer(layer); } }
private ITemporalRenderer setRenderer(IFeatureClass featureClass, string temporalField, string eventName) { CoTrackSymbologyRenderer trackingRenderer = new CoTrackSymbologyRendererClass(); ITemporalRenderer temporalRenderer = (ITemporalRenderer)trackingRenderer; temporalRenderer.TemporalFieldName = temporalField; temporalRenderer.TemporalObjectColumnName = eventName; temporalRenderer.TimeSymbologyMethod = enumTemporalSymbolizationMethod.enumColor; //this is a desktop only code which requires assemblies CartoUI and Framework //IRendererPropertyPage rendererPropPage = new UniqueValuePropertyPageClass(); //enable the most current renderer IUniqueValueRenderer uniqueValrenderer = CreateUniqueValueRenderer(featureClass, eventName); if (null != uniqueValrenderer) { ((ITemporalRenderer2)temporalRenderer).MostCurrentRenderer = (IFeatureRenderer)uniqueValrenderer; ((ITemporalRenderer2)temporalRenderer).MostCurrentRendererEnabled = true; //this is a desktop only code which requires assemblies CartoUI and Framework //((ITemporalRenderer2)temporalRenderer).PropPageMostCurrentRenderer = rendererPropPage.ClassID; } //set the track renderer uniqueValrenderer = CreateTrackUniqueValueRenderer(featureClass, eventName); if (null != uniqueValrenderer) { ITrackSymbologyRenderer trackSymbolenderer = trackingRenderer as ITrackSymbologyRenderer; trackSymbolenderer.TrackSymbologyRenderer = (IFeatureRenderer)uniqueValrenderer; ((ITemporalRenderer2)temporalRenderer).TrackRendererEnabled = true; ((ITemporalRenderer2)temporalRenderer).SmoothTracks = true; //this is a desktop only code which requires assemblies CartoUI and Framework //((ITemporalRenderer2)temporalRenderer).PropPageTrackRenderer = rendererPropPage.ClassID; } return(temporalRenderer); }