determine which renderer is set on a raster layer in ArcObjects

3330
1
11-04-2014 05:45 PM
KarstenVennemann
New Contributor

I am trying to use ArcObjects (Visual Basic) to loop through the map layers in an ArcGIS desktop *.mxd document and read the renderers that are attached to the existing layers (want to use Raster layers). Can anyone tell me how to read (not set ) the property of a layer (or data set) which renderer is attached to it currently ? I found tons of examples how to set a renderer it but I need instead to read what is set already. The next step I need to get the b colors for the classes in the renderer. If anyone has a code example (no matter which programming language that would be terrific

Thanks Karsten

0 Kudos
1 Reply
DuncanHornby
MVP Notable Contributor

The following VBA code shows you how to get a handle on a raster layers renderer:

Public Sub test()

    ' Get document

    Dim pmxd As IMxDocument

    Set pmxd = ThisDocument

   

    ' Get map

    Dim pmap As IMap

    Set pmap = pmxd.FocusMap

   

    ' Get first layer (assumed to be raster)

    Dim pLayer As ILayer

    Set pLayer = pmap.Layer(0)

   

    ' QI into rasterlayer

    Dim pRasterLayer As IRasterLayer

    Set pRasterLayer = pLayer

   

    ' Get renderer

    Dim pRasterRenderer As IRasterRenderer

    Set pRasterRenderer = pRasterLayer.Renderer

   

    ' Test renderer type and report

    If TypeOf pRasterRenderer Is IRasterStretchColorRampRenderer Then

       Debug.Print "stretchy!"

       Dim pRasterStretchColorRampRenderer As IRasterStretchColorRampRenderer

       Set pRasterStretchColorRampRenderer = pRasterRenderer

       Debug.Print pRasterStretchColorRampRenderer.LabelHigh

    End If

End Sub

0 Kudos