com.esri.arcgis.carto
Interface IBivariateRenderer

All Superinterfaces:
Serializable
All Known Implementing Classes:
BiUniqueValueRenderer

public interface IBivariateRenderer
extends Serializable

Provides access to members that control the rendering of bivariate symbology based on two constiuent renderers.

Description

This interface provides access to methods and properties of a renderer used to draw features based on two different attributes. Two separate renderers are assigned to represent these attributes. The first renderer assigned is a UniqueValueRenderer, and the second is a ClassBreaksRenderer.

See BiUniqueRenderer for more information about how IBivariateRenderer can be implemented. This renderer corresponds to the "Quanity by category" layer symbology option in ArcMap.

Remarks

MainRenderer must be set to a UniqueValueRenderer, and VariationRenderer must be a ClassBreaksRenderer.

The BiUniqueValueRenderer takes the symbol from the unique value renderer and alters either its size or color based on the symbol from the class breaks renderer. If the second renderer returns true for IClassBreaksRenderer::SymbolsAreGraduated, then the size will be altered, otherwise color will be altered. Hue will be maintained from the MainRenderer, but saturation and value will be taken from the VariationRenderer. See IHsvColor to learn more about hue, saturation, and value.

The VariationRenderer is typically set up with a symbol type that matches the MainRenderer, for example, marker symbols in the MainRenderer and marker symbols in the VariationRenderer. However, when rendering polygon features you can set up the VariationRenderer with marker symbols which will be drawn in the center of the polygon features. In this case, IClassBreaksRenderer::BackgroundSymbol applies from the VariationRenderer.

Call CreateLegend after initially setting up or making changes to and renderer properties. When the VariationRenderer is used to produce a graduated color representation, the renderer's legend consists of the combinatino of all possible values from the two renderers. When VariationRenderer is a graduated symbol type representation, then only the representative symbol colors and sizes are shown in the legend.

You should always keep in mind the multiplicative nature of bivariate rendering. When chosing a number of classes for both the MainRenderer and VariationRenderer, keep in mind that if they have 3 classes each that your map will have 9 classes of features. Maps with too many classes of features are hard to understand.

You can write your own custom renderer that does bivariate mapping, and it can implement IBivariateRenderer. Keep in mind though that the ArcMap user interface will expect that your renderer consist of a UniqueValueRenderer and a ClassBreaksRenderer. If implementing your own renderer it is good practice to implement a renderer property page so that users can set properties using a dialog, and also to identify your renderer uniquely by implementing a custom interface so that your property page is used to edit your renderer.

To learn more about writing a custom renderer property page and interface, see the library overview topic for the Carto library.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void createLegend()
          Creates the legend.
 IFeatureRenderer getMainRenderer()
          Main renderer of a bivariate renderer.
 IFeatureRenderer getVariationRenderer()
          Variation renderer of a bivariate renderer.
 void setMainRendererByRef(IFeatureRenderer renderer)
          Main renderer of a bivariate renderer.
 void setVariationRendererByRef(IFeatureRenderer renderer)
          Variation renderer of a bivariate renderer.
 

Method Detail

getMainRenderer

IFeatureRenderer getMainRenderer()
                                 throws IOException,
                                        AutomationException
Main renderer of a bivariate renderer.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.carto.IFeatureRenderer
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMainRendererByRef

void setMainRendererByRef(IFeatureRenderer renderer)
                          throws IOException,
                                 AutomationException
Main renderer of a bivariate renderer.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
renderer - A reference to a com.esri.arcgis.carto.IFeatureRenderer (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getVariationRenderer

IFeatureRenderer getVariationRenderer()
                                      throws IOException,
                                             AutomationException
Variation renderer of a bivariate renderer.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.carto.IFeatureRenderer
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setVariationRendererByRef

void setVariationRendererByRef(IFeatureRenderer renderer)
                               throws IOException,
                                      AutomationException
Variation renderer of a bivariate renderer.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
renderer - A reference to a com.esri.arcgis.carto.IFeatureRenderer (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

createLegend

void createLegend()
                  throws IOException,
                         AutomationException
Creates the legend. Call after all properties are set.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.