|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.esri.arcgis.carto.ScaleDependentRenderer
public class ScaleDependentRenderer
A scale dependent renderer that is composed of multiple renderers, each operating within a particular scale range.
This renderer contains other renderers, and it allows you to specify different renderers for different scale ranges. For example, when a user views a layer at its full extent, features can be drawn with one symbology, and when the user zooms in far enough, the symbology can change to another. You can specify as many renderers and scale ranges as you need.
For example, you could use the ScaleDependentRenderer when symbolizing a road network. Specify two different sub renderers and scale ranges. When zoomed out to the full extent, all of the roads could be drawn with the same line symbol -- using a SimpleRenderer. When zoomed in, the roads could be drawn based on road class by using a UniqueValueRenderer. With this renderer type, more important roads can be drawn with thicker, cased-line symbols.
The ScaleDependentRenderer is not available using the ArcGIS interface. To use this renderer you must use code to build and assign the renderer to a layer.
You can create scale dependent symbology using multiple layers, instead of multiple renderer assigned to a single layer through a ScaleDependentRenderer. For example, you can set up multiple feature layers and specify valid min and max display scales for each using IFeatureLayer::MinimumScale and IFeatureLayer::MaximumScale. This functionality is available using out of the box ArcGIS. To learn more, see the ArcGIS for Desktop Help.
| Constructor Summary | |
|---|---|
ScaleDependentRenderer()
Constructs a ScaleDependentRenderer using ArcGIS Engine. |
|
ScaleDependentRenderer(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. ScaleDependentRenderer theScaleDependentRenderer = (ScaleDependentRenderer) obj; |
|
| Method Summary | |
|---|---|
void |
addRenderer(IFeatureRenderer renderer)
Adds a renderer to the end of the list. |
boolean |
canRender(IFeatureClass featClass,
IDisplay display)
Indicates if the specified feature class can be rendered on the given display. |
void |
draw(IFeatureCursor cursor,
int drawPhase,
IDisplay display,
ITrackCancel trackCancel)
Draws features from the specified cursor on the given display. |
boolean |
equals(Object o)
Compare this object with another |
double |
getBreak(int index)
Scale value at which to break for the specified index. |
void |
getClassID(GUID[] pClassID)
getClassID |
static String |
getClsid()
getClsid. |
ILegendGroup |
getLegendGroup(int index)
Legend group at the specified index. |
int |
getLegendGroupCount()
Number of legend groups contained by the object. |
ILegendItem |
getLegendItem()
Optional. |
Object |
getRenderer(int index)
The renderer at the specified index. |
int |
getRendererCount()
Number of renderers. |
void |
getSizeMax(_ULARGE_INTEGER[] pcbSize)
getSizeMax |
ISymbol |
getSymbolByFeature(IFeature feature)
Symbol used to draw the specified feature. |
int |
hashCode()
the hashcode for this object |
void |
isDirty()
isDirty |
boolean |
isRenderPhase(int drawPhase)
Indicates if renderer uses the specified draw phase. |
boolean |
isSymbolsAreGraduated()
Indicates if symbols are graduated. |
void |
load(IStream pstm)
load |
void |
moveRenderer(IFeatureRenderer renderer,
int toIndex)
Moves renderer to the specified location in the list. |
void |
prepareFilter(IFeatureClass fc,
IQueryFilter queryFilter)
Prepares the query filter for the rendering process. |
void |
readExternal(ObjectInput in)
|
void |
removeRenderer(IFeatureRenderer renderer)
Removes the specified renderer from the list. |
void |
save(IStream pstm,
int fClearDirty)
save |
void |
setBreak(int index,
double breakValue)
Scale value at which to break for the specified index. |
void |
setExclusionSetByRef(IFeatureIDSet rhs1)
An object reference to a temporary drawing exclusion set. |
void |
setExportInfoByRef(IFeatureExportInfoGenerator rhs1)
The helper oject to generate export information. |
void |
setRendererByRef(int index,
Object renderer)
The renderer at the specified index. |
void |
setRendererCount(int rendererCount)
Number of renderers. |
void |
setSymbolsAreGraduated(boolean symbolsAreGraduated)
Indicates if symbols are graduated. |
void |
writeExternal(ObjectOutput out)
|
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
|---|
getJintegraDispatch, release |
| Constructor Detail |
|---|
public ScaleDependentRenderer()
throws IOException,
UnknownHostException
IOException - if there are interop problems
UnknownHostException - if there are interop problems
public ScaleDependentRenderer(Object obj)
throws IOException
ScaleDependentRenderer theScaleDependentRenderer = (ScaleDependentRenderer) obj;
obj to ScaleDependentRenderer.
obj - an object returned from ArcGIS Engine or Server
IOException - if there are interop problems| Method Detail |
|---|
public static String getClsid()
public boolean equals(Object o)
equals in class Objectpublic int hashCode()
hashCode in class Object
public int getRendererCount()
throws IOException,
AutomationException
getRendererCount in interface IScaleDependentRendererIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setRendererCount(int rendererCount)
throws IOException,
AutomationException
setRendererCount in interface IScaleDependentRendererrendererCount - The rendererCount (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public Object getRenderer(int index)
throws IOException,
AutomationException
getRenderer in interface IScaleDependentRendererindex - The index (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setRendererByRef(int index,
Object renderer)
throws IOException,
AutomationException
setRendererByRef in interface IScaleDependentRendererindex - The index (in)renderer - A reference to another Object (IUnknown) (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public double getBreak(int index)
throws IOException,
AutomationException
getBreak in interface IScaleDependentRendererindex - The index (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setBreak(int index,
double breakValue)
throws IOException,
AutomationException
setBreak in interface IScaleDependentRendererindex - The index (in)breakValue - The breakValue (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void addRenderer(IFeatureRenderer renderer)
throws IOException,
AutomationException
addRenderer in interface IScaleDependentRendererrenderer - A reference to a com.esri.arcgis.carto.IFeatureRenderer (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void removeRenderer(IFeatureRenderer renderer)
throws IOException,
AutomationException
removeRenderer in interface IScaleDependentRendererrenderer - A reference to a com.esri.arcgis.carto.IFeatureRenderer (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void moveRenderer(IFeatureRenderer renderer,
int toIndex)
throws IOException,
AutomationException
moveRenderer in interface IScaleDependentRendererrenderer - A reference to a com.esri.arcgis.carto.IFeatureRenderer (in)toIndex - The toIndex (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public boolean canRender(IFeatureClass featClass,
IDisplay display)
throws IOException,
AutomationException
If the renderer is not applicable to a feature layer, then it can return False in response to a CanRender method. For example, the dot-density renderer is only applicable to polygon feature layers and returns False in response to other feature layers.
canRender in interface IFeatureRendererfeatClass - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)display - A reference to a com.esri.arcgis.display.IDisplay (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void prepareFilter(IFeatureClass fc,
IQueryFilter queryFilter)
throws IOException,
AutomationException
This method is called prior to the Draw method and gives the renderer a chance to adjust the query filter to incorporate extra constraints. For example, if a particular field is required for the renderer, it would add this field to the filter to ensure it is accessible during the Draw method.
prepareFilter in interface IFeatureRendererfc - A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void draw(IFeatureCursor cursor,
int drawPhase,
IDisplay display,
ITrackCancel trackCancel)
throws IOException,
AutomationException
This method is typically called by the framework to renderer features to a display. This could be in response to a refresh on the map. This method typically iterates through all the features and renders each feature with an appropriate symbol.
An individual feature is typically drawn by calling the Draw method on the feature's IFeatureDraw with the symbol created by the renderer. However, when writing a custom feature renderer you can draw anything you want using a number of different methods. To learn more see the section on writing a custom feature renderer in Extending ArcObjects.
To allow complex rendering to be canceled halfway through a draw, the renderer typically checks the TrackCancel object after each feature or set of features. If a cancel action has occurred, the renderer will exit.
There are three drawing phases: selection, annotation, and geography, and this method can be called by the framework up to three times. With the exception of the selection phase, this method will only be called for a particular draw phase if the call by the framework to RenderPhase returns true for that phase.
Feature renderers typically only draw features during the geography phase, though in some cases features are drawn in the annotation phase. Take for example a case where proportional symbols are drawn for polygon features. The ProportionalSymbolRenderer draws the background fill symbol during the geography phase and the proportionally sized marker symbol during the annotation phase.
draw in interface IFeatureRenderercursor - A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)drawPhase - A com.esri.arcgis.system.esriDrawPhase constant (in)display - A reference to a com.esri.arcgis.display.IDisplay (in)trackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public ISymbol getSymbolByFeature(IFeature feature)
throws IOException,
AutomationException
getSymbolByFeature in interface IFeatureRendererfeature - A reference to a com.esri.arcgis.geodatabase.IFeature (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public boolean isRenderPhase(int drawPhase)
throws IOException,
AutomationException
isRenderPhase in interface IFeatureRendererdrawPhase - A com.esri.arcgis.system.esriDrawPhase constant (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setExclusionSetByRef(IFeatureIDSet rhs1)
throws IOException,
AutomationException
The list of feature IDs to be excluded from drawing.
Some feature renderers support IDataExclusion which allows you to build a where clause to exclude features.
Exclusion prevents features from drawing. To prevent features from drawing as well as from appearing in tables and in query results, set a layer definition query using IFeatureLayerDefinition.
setExclusionSetByRef in interface IFeatureRendererrhs1 - A reference to a com.esri.arcgis.carto.IFeatureIDSet (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public int getLegendGroupCount()
throws IOException,
AutomationException
The number of legend groups is determined by the implementation of the renderer, consequently this property is read only. For example, SimpleRenderer has one group, while a BiUniqueValueRenderer has any number of groups.
getLegendGroupCount in interface ILegendInfoIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public ILegendGroup getLegendGroup(int index)
throws IOException,
AutomationException
getLegendGroup in interface ILegendInfoindex - The index (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public ILegendItem getLegendItem()
throws IOException,
AutomationException
Layer or renderer legend information is further formatted for display in ArcMap legends. A renderer can override this formatting by returning a LegendItem for this property. ESRI renderers typically do not return anything for this property. With this configuration, legend formatting becomes a user or developer choice on the legend object.
getLegendItem in interface ILegendInfoIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public boolean isSymbolsAreGraduated()
throws IOException,
AutomationException
Indicates whether the symbols used for a layer or renderer's legend vary by size.
For example the proportional symbol renderer returns True for this property.
You can use this property to distinguish between a layer symbolized with graduated color or graduated symbol type layer symbology. Both of these symbolizations use a ClassBreaksRenderer, but only a graduated symbol symbolization will return True for this property.
isSymbolsAreGraduated in interface ILegendInfoIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setSymbolsAreGraduated(boolean symbolsAreGraduated)
throws IOException,
AutomationException
setSymbolsAreGraduated in interface ILegendInfosymbolsAreGraduated - The symbolsAreGraduated (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void isDirty()
throws IOException,
AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
isDirty in interface IPersistStreamIOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void load(IStream pstm)
throws IOException,
AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
load in interface IPersistStreampstm - A reference to a com.esri.arcgis.system.IStream (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void save(IStream pstm,
int fClearDirty)
throws IOException,
AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
save in interface IPersistStreampstm - A reference to a com.esri.arcgis.system.IStream (in)fClearDirty - The fClearDirty (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
throws IOException,
AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
getSizeMax in interface IPersistStreampcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void getClassID(GUID[] pClassID)
throws IOException,
AutomationException
IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.
getClassID in interface IPersistpClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void setExportInfoByRef(IFeatureExportInfoGenerator rhs1)
throws IOException,
AutomationException
setExportInfoByRef in interface IExportSupportrhs1 - A reference to a com.esri.arcgis.carto.IFeatureExportInfoGenerator (in)
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public void writeExternal(ObjectOutput out)
throws IOException
writeExternal in interface ExternalizableIOException
public void readExternal(ObjectInput in)
throws IOException,
ClassNotFoundException
readExternal in interface ExternalizableIOException
ClassNotFoundException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||