This document is archived and information here might be outdated.  Recommended version.

IMarkerPlacement Interface (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Display > ESRI.ArcGIS.Display > Interfaces > IM > IMarkerPlacement Interface
ArcGIS Developer Help

IMarkerPlacement Interface

Provides access to members that control the marker placement.

Product Availability

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

When To Use

This interface must be implemented by all custom marker placement objects along with IGraphicAttributes and IPersistVariant interfaces (or IPersist and IPersistStream in Visual Basic 6.0).


Name Description
Read-only property AcceptGeometryType Indicates if the input geometry type is valid.
Method NextTransformation Hands back the next transformation.
Method Reset Resets the collection of transformations. Must be called before using NextTransformation.

Classes that implement IMarkerPlacement

Classes Description
MarkerPlacementAlongLine Places markers along a line.
MarkerPlacementAtExtremities Places a marker on each extremity of a line.
MarkerPlacementDecoration Places markers as line decorations.
MarkerPlacementInsidePolygon Places markers in a polygon.
MarkerPlacementOnLine Places one marker along a line.
MarkerPlacementOnPoint Places a marker on a point.
MarkerPlacementOnVertices Places markers on curve vertices.
MarkerPlacementPolygonCenter Places one marker at the center of a polygon.
MarkerPlacementRandomAlongLine Places markers randomly along a line.
MarkerPlacementRandomInPolygon Places markers randomly within a polygon.
MarkerPlacementVariableAlongLine Places markers with variable size along a line.


Use IMarkerPlacement to define how you want to place marker symbols with respect to input geometry. If you create a custom marker placement, then IGraphicAttributes interface which will define the properties for this effect and IPersistVariant (VB users) or IPersist and IPersistStream (C++ users) to persist the object have to be implemented.

AcceptGeometryType is a boolean that indicates if the input geometry type is valid for the MarkerPlacement object. For example, this property returns True if input is esriGeometryPoint for MarkerPlacementOnPoint as this object places a marker at the location of the point geometry.

Reset method is used to re-set the result of applying a marker placement to a feature representation. Next method is used to retrieve the individual transformations created after the marker placement is applied. Sometimes a placement style may result in a multi-point output transformations. For example, MarkerPlacemementAlongLine places multiple markers along a line geometry.

Note: Reset method has to be called prior to calling Next method.

To make changes to an existing BasicMarkerSymbol's marker placement property use IBasicMarkerSymbol::MarkerPlacement property to retrieve the object and make changes using a IMarkerPlacement interface.