Quantcast
Channel: Forums - ArcObjects SDKs
Viewing all articles
Browse latest Browse all 1374

Renderer On Date Ranges

$
0
0
Hi Everyone,
So lets say I want to symbolize one field that has date and time and break it down by Current_TimeStamp for > 90 days, 60 - 90 days etc. Then I would like to render each selection with a specific color, red, yellow, green. I can select for data range and set the symbols for each range but only the first draws the color. I pull the feature class from SDE and reference the FC three times for each selection, renderer and Geofeaturelayer. The renderer through a loop selects each date and symbolizes each record for each date range (YUK). I figured if I could set individual renderer's for selection I would be OK. Should I continue down this path? Should I try and export the selection to LYR file and import back into ArcMap for symbolization? A bit of confusion here. Heres my code VS 2010 ArcMAP V 10.

Dim featureInspectLayer As IFeatureLayer = New FeatureLayerClass
featureInspectLayer.FeatureClass = featureInspectClass
featureInspectLayer.Name = "Inspections_>_90_Days"
featureInspectLayer.Visible = True

' If activeView Is Nothing OrElse featureInspectLayer Is Nothing OrElse whereClause Is Nothing Then
'Return
'End If
Dim featureInspectSelection As IFeatureSelection = TryCast(featureInspectLayer, IFeatureSelection) ' Dynamic Cast
' Set up the query
Dim feature As ESRI.ArcGIS.Geodatabase.IFeature
Dim queryFilter As IQueryFilter = New QueryFilterClass '
Dim Day90Filter As String = "WHERE [InspectionDate] in (SELECT max([InspectionDate]) FROM VECTOR.SDE.PolyInspection GROUP BY [SourceSiteID]) AND InspectionDate <= Current_TimeStamp - 90"

queryFilter.WhereClause = Day90Filter
Dim featSelection As IFeatureSelection = featureInspectLayer
featSelection.SelectFeatures(queryFilter, esriSelectionResultEnum.esriSelectionResultNew, False)
featSelection.SelectionChanged()

Dim selectionSet As ISelectionSet = featSelection.SelectionSet
Dim featCursor As IFeatureCursor = Nothing
selectionSet.Search(Nothing, True, featCursor)

Dim NineDay As IRgbColor
NineDay = New RgbColor
NineDay.Red = 255
NineDay.Green = 0
NineDay.Blue = 0

Dim symd As New SimpleFillSymbol
symd.Style = esriSimpleFillStyle.esriSFSSolid
symd.Outline.Width = 6

Dim uvRenderer As IUniqueValueRenderer = New UniqueValueRenderer
uvRenderer.FieldCount = 1
uvRenderer.Field(0) = "InspectionDate"
uvRenderer.DefaultSymbol = symd
uvRenderer.UseDefaultSymbol = True

Dim sym As ISimpleFillSymbol = Nothing
feature = featCursor.NextFeature
Do Until feature Is Nothing
sym = New SimpleFillSymbol
sym.Style = esriSimpleFillStyle.esriSFSSolid
sym.Outline.Width = 6
sym.Outline.Color = NineDay
sym.Color = NineDay
uvRenderer.AddValue(feature.Value(feature.Fields.FindField("InspectionDate")), "", sym)
feature = featCursor.NextFeature()
Loop

' adds Inspection Feature layer
activeView.FocusMap.AddLayer(featureInspectLayer)
activeView.Extent = activeView.FullExtent
activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, Nothing, Nothing)
mapDoc.ActiveView.ContentsChanged()
featSelection.SelectionChanged()
pMxDoc.UpdateContents()

Dim geofeatureInspectLayer As IGeoFeatureLayer = featureInspectLayer
geofeatureInspectLayer.Renderer = uvRenderer

Thanks Folks

Viewing all articles
Browse latest Browse all 1374

Trending Articles