1 votos

¿Cómo cambiar el color de las características?

Tengo característica ( polygon ) se obtuvo mediante spatial query del mapa.

¿Cómo cambiar su color?

Utilicé este código pero no funcionó

IMxDocument mxDocument = application.Document as IMxDocument;
IActiveView activeView = mxDocument.ActiveView;
IRgbColor rgbColor = new RgbColorClass();
ISimpleFillSymbol fillSymbol = new SimpleFillSymbolClass();
IElement element = new PolygonElementClass();
rgbColor.Red = 255;
rgbColor.Green = 40;
rgbColor.Blue = 50;
fillSymbol.Color = rgbColor;
element.Geometry = parcel.Shape;
IFillShapeElement pFillElement = (IFillShapeElement)element;
pFillElement.Symbol = fillSymbol;
activeView.Refresh();

2voto

JoshNaro Puntos 1306

He resuelto este problema utilizando IGraphicsContainer ver este enlace

0voto

user15183 Puntos 28

Mi flujo de trabajo para "recolorear" características es el siguiente:

Primero configuro la capa para ser simbolizada por categorías, y establezco las opciones correctas, clases, etc. con el flujo de trabajo normal de ArcGIS.

A continuación, utilizo secuencias de comandos para establecer el valor del campo con el que se colorean los datos en el valor deseado.

Lo utilizo para una cuadrícula nacional en la que quiero resaltar determinadas celdas de la cuadrícula. La clase de rasgo/archivo de forma se simboliza en el campo "seleccionado", mostrado como gris cuando seleccionado=0 y como amarillo cuando seleccionado=1. Entonces es simplemente (en python):

with arcpy.da.UpdateCursor(<shapefile to update>, ("ID","selected")) as cursor:
  for data_row in cursor:
    if data_row[0] <should be set to selected>:
      data_row[1] = 1
    else:
      data_row[1] = 0
    cursor.updateRow(data_row)

0voto

Rostol Puntos 191

Debe añadir su elemento a una capa gráfica. Vea este ejemplo de ESRI.

Dim pCGLayer As ICompositeGraphicsLayer
Set pCGLayer = New CompositeGraphicsLayer

'Name the new graphics layer
Dim pLayer As ILayer
Set pLayer = pCGLayer
pLayer.Name = "TestPoint"

'Add the layer to the map
pMap.AddLayer pCGLayer

'Get the graphics layer and screen display
Dim pGrLayer As IGraphicsLayer
Set pGrLayer = pCGLayer

Dim pScreenDisplay As IScreenDisplay
Set pScreenDisplay = pMxApp.Display

'Add the marker element ot the layer graphics container
Dim pGraphicCont As IGraphicsContainer
Set pGraphicCont = pGrLayer
pGraphicCont.AddElement pMarkerElement, 0
With pScreenDisplay
  .ActiveCache = 0
  .StartDrawing pScreenDisplay.hDC, 0
  .SetSymbol pSimpleMarkerSymbol
  pElement.Draw pScreenDisplay, Nothing
  .FinishDrawing
End With

'Refresh/redraw the display with the new point
pMxDoc.ActiveView.Refresh

http://support.esri.com/en/knowledgebase/techarticles/detail/21613

0voto

Sneal Puntos 1088

ESRI.ArcGIS.Display.IColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass(); rgbColor.RGB = 255;

ESRI.ArcGIS.Display.IMarkerSymbol markerSymbol = (ESRI.ArcGIS.Display.IMarkerSymbol)simpleMarker3DSymbol; // Molde explícito markerSymbol.Color = rgbColor; markerSymbol.Size = 100000;

-2voto

Sneal Puntos 1088

[Visual Basic 6.0]

Dim aColor As IRGBColor 
Set aColor = New RGBColor 

aColor.Red = 133 
aColor.Green = 135 
aColor.Blue = 43 
aColor.Transparency = 50

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X