com.esri.arcgis.maplex
Interface IMaplexOverposter

All Superinterfaces:
Serializable
All Known Implementing Classes:
MaplexOverposter

public interface IMaplexOverposter
extends Serializable

Provides access to members that control the Maplex Overposter.

Description

The MaplexOverposter object provides a wrapper around the Maplex placement engine, hiding the details of the text placement algorithms. To use the overposter first initialize it with parameters such as the map extent, spatial reference, display object, track cancel object, and overposter properties. Then call AddFeature() to add the features to the overposter. Call PlaceLabels() to start processing, and when this method returns, retrieve the results using the PlacedLabels and UnplacedLabels enumerators.

Note that MaplexOverposter does not generate events to fire back labels as they are placed, like the BasicOverposter. You retrieve all of the placed labels at the end of a placement run. MaplexOverposter determines the font metrics for you, so you don’t need to supply the label size.

This interface is designed for low level access to the placement algorithms of the MaplexOverposter. The labeling maps and features, use the MaplexAnnotateMap and MaplexAnnoateFeature objects. They wrap calls to the MaplexOverposter into a more general form for use with layers and maps.


Product Availability

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


Method Summary
 void addBarriers(int weight, IGeometryCollection barriers)
          Adds a barrier object that placed objects must avoid.
 int addClass(ILabelEngineLayerProperties props)
          Adds a class to the overposter and specifies its properties.
 void addFeature(int classIndex, IGeometry featureShape, ISymbol featureSymbol, int featureID, String label, double labelAngle, int mapLevel)
          Adds a feature with its associated label (optional) to the overposter.
 void addSymbol(int classIndex, ISymbol symbol, IGeometry geometry, int featureID)
          Adds a symbol to be placed.
 int getCapabilities(ILayer layer)
          Overposter capabilities for the specified layer.
 int getClassCount()
          The number of classes.
 int getPlacedLabelCount()
          The number of unplaced labels.
 IEnumMaplexPlacedLabel getPlacedLabels()
          Enumeration of placed labels.
 int getUnplacedLabelCount()
          The number of unplaced labels.
 IEnumMaplexPlacedLabel getUnplacedLabels()
          Enumeration of unplaced labels.
 void initialize(IEnvelope extent, IDisplay display, ISpatialReference spatialReference, IMaplexOverposterProperties overposterProps, ITrackCancel trackCancel)
          Initializes the overposter for drawing into the specified area of the map display.
 void placeLabels()
          Places labels using the overposter.
 void resetClasses()
          Removes all classes from the overposter.
 

Method Detail

initialize

void initialize(IEnvelope extent,
                IDisplay display,
                ISpatialReference spatialReference,
                IMaplexOverposterProperties overposterProps,
                ITrackCancel trackCancel)
                throws IOException,
                       AutomationException
Initializes the overposter for drawing into the specified area of the map display.

Product Availability

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

Supported Platforms

Windows

Parameters:
extent - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
display - A reference to a com.esri.arcgis.display.IDisplay (in)
spatialReference - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
overposterProps - A reference to a com.esri.arcgis.carto.IMaplexOverposterProperties (in)
trackCancel - A reference to a com.esri.arcgis.system.ITrackCancel (in, optional, pass null if not required)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getCapabilities

int getCapabilities(ILayer layer)
                    throws IOException,
                           AutomationException
Overposter capabilities for the specified layer.

Product Availability

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

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

getClassCount

int getClassCount()
                  throws IOException,
                         AutomationException
The number of classes.

Description

The number of labeling classes which have been added to the overposter.

Product Availability

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

Supported Platforms

Windows

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

addClass

int addClass(ILabelEngineLayerProperties props)
             throws IOException,
                    AutomationException
Adds a class to the overposter and specifies its properties.

Product Availability

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

Supported Platforms

Windows

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

resetClasses

void resetClasses()
                  throws IOException,
                         AutomationException
Removes all classes from the overposter.

Product Availability

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

Supported Platforms

Windows

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

addFeature

void addFeature(int classIndex,
                IGeometry featureShape,
                ISymbol featureSymbol,
                int featureID,
                String label,
                double labelAngle,
                int mapLevel)
                throws IOException,
                       AutomationException
Adds a feature with its associated label (optional) to the overposter.

Product Availability

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

Supported Platforms

Windows

Parameters:
classIndex - The classIndex (in)
featureShape - A reference to a com.esri.arcgis.geometry.IGeometry (in)
featureSymbol - A reference to a com.esri.arcgis.display.ISymbol (in)
featureID - The featureID (in)
label - The label (in)
labelAngle - The labelAngle (in)
mapLevel - The mapLevel (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addBarriers

void addBarriers(int weight,
                 IGeometryCollection barriers)
                 throws IOException,
                        AutomationException
Adds a barrier object that placed objects must avoid.

Product Availability

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

Supported Platforms

Windows

Parameters:
weight - A com.esri.arcgis.carto.esriBasicOverposterWeight constant (in)
barriers - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addSymbol

void addSymbol(int classIndex,
               ISymbol symbol,
               IGeometry geometry,
               int featureID)
               throws IOException,
                      AutomationException
Adds a symbol to be placed.

Product Availability

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

Supported Platforms

Windows

Parameters:
classIndex - The classIndex (in)
symbol - A reference to a com.esri.arcgis.display.ISymbol (in)
geometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
featureID - The featureID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

placeLabels

void placeLabels()
                 throws IOException,
                        AutomationException
Places labels using the overposter.

Description

Tells the MaplexOverposter to place the labels.

Product Availability

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

Supported Platforms

Windows

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

getPlacedLabelCount

int getPlacedLabelCount()
                        throws IOException,
                               AutomationException
The number of unplaced labels. Only valid after calling PlaceObjects.

Product Availability

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

Supported Platforms

Windows

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

getUnplacedLabelCount

int getUnplacedLabelCount()
                          throws IOException,
                                 AutomationException
The number of unplaced labels. Only valid after calling PlaceObjects.

Product Availability

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

Supported Platforms

Windows

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

getPlacedLabels

IEnumMaplexPlacedLabel getPlacedLabels()
                                       throws IOException,
                                              AutomationException
Enumeration of placed labels.

Description

Returns an enumeration containing the labels (as MaplexPlacedLabels) for which Maplex has obtained satisfactory positions.

Product Availability

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

Supported Platforms

Windows

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

getUnplacedLabels

IEnumMaplexPlacedLabel getUnplacedLabels()
                                         throws IOException,
                                                AutomationException
Enumeration of unplaced labels.

Description

Returns an enumeration containing the labels (as MaplexPlacedLabels) for which Maplex could not obtain satisfactory positions. The best possible position is given to each label anyway and its PlacementCode is set to esriPlacementUnplaced.

Product Availability

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

Supported Platforms

Windows

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