ArcObjects Library Reference (Geometry)  

IPoint Interface

Provides access to members that define two dimensional points.

Product Availability

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


A Point is a zero-dimensional object that represents a specific (X, Y) location in a the two-dimensional XY-Plane.  A Point may also have Z, M, and ID attributes associated with it.  Existence of attributes does not alter the dimensionality of a Point nor does it alter geometric calculations performed on the Point.  Attributes are only considered for attribute calculations when the Point is ZAware, MAware, or PointIDAware.  Points may be constructed using PutCoords, individually setting the X and Y properties, or using the IConstructPoint interface.


Method Compare Compares X, Y, M, Z, ID of this point (in that order) with that of the other point. Returns -1 if this point's value is less, 1 if greater, and 0 otherwise. Useful for sorting a group of points.
Method ConstrainAngle Projects this point to the point on the infinite line defined by anchor and angle (in radians). If allowOpposite is true, then the point can also snap to angle + pi radians.
Method ConstrainDistance Projects this point to the perimeter of the circle defined by radius and anchor.
Read-only property Dimension The topological dimension of this geometry.
Read-only property Envelope Creates a copy of this geometry's envelope and returns it.
Read-only property GeometryType The type of this geometry.
Method GeoNormalize Shifts longitudes, if need be, into a continuous range of 360 degrees.
Method GeoNormalizeFromLongitude Normalizes longitudes into a continuous range containing the longitude. This method is obsolete.
Read/write property ID The Point ID attribute.
Read-only property IsEmpty Indicates whether this geometry contains any points.
Read/write property M The measure attribute.
Method Project Projects this geometry into a new spatial reference.
Method PutCoords Sets the X and Y coordinates.
Method QueryCoords Returns the X and Y coordinates.
Method QueryEnvelope Copies this geometry's envelope properties into the specified envelope.
Method SetEmpty Removes all points from this geometry.
Method SnapToSpatialReference Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system.
Read/write property SpatialReference The spatial reference associated with this geometry.
Read/write property X The X coordinate.
Read/write property Y The Y coordinate.
Read/write property Z The Z attribute.

Inherited Interfaces

Interfaces Description
IGeometry Provides access to members that describe properties and behavior of all geometric objects.

CoClasses that implement IPoint

CoClasses and Classes Description
MapPoint (esriDataSourcesRaster) Implements interface IMapPoint (a point in map space).
Point A two dimensional point, optionally with measure, height, and ID attributes.



Point Example

See Also

IGeometry Interface | IMultipoint Interface | IConstructPoint Interface

.NET Snippets

Statements - Convert Coordinates MGRS to LatLong, DMS and UTM | Get All Features from Point Search in GeoFeatureLayer | Get Azimuth from Two Points | Get First Feature from Point Search in GeoFeatureLayer | Set M Value on Point | Create Force Element | Draw Point | Get Screen Coordinates from Map Coordinates | Add Graphics Layer to Globe | Get Geographic Coordinates in Globe | Move Force Element | Zoom to Selected Globe Features | Set Z Value on Point | Get Distance from Two Points | Toggle Between Surface and Global Navigation Mode | Zoom by Ratio and Recenter | Get Map Coordinates from Screen Coordinates | Create CircularArc From Points | Draw Line on Dynamic Display | Display LatLong, DMS, and UTM from MGRS | Draw Compound Marker on Dynamic Display

.NET Samples

Export any network analysis class to a text file (Code Files: NAClassToTextfileCmd) | Curve conversion add-in (Code Files: CurveConversionDockWin) | 3D multipatch examples (Code Files: CompositeExamples DrawUtilities ExtrusionExamples GeometryUtilities Transform3DExamples Vector3DExamples) | Custom map navigation commands (Code Files: Pan PanDown PanLeft PanRight PanUp ZoomIn ZoomOut) | Dynamic logo (Code Files: DynamicLogo) | Dynamic display animated zoom (Code Files: AnimatedZoomInTool AnimatedZoomOutTool) | Dynamic biking (Code Files: DynamicBikingCmd) | 3D dynamic element tracking (Code Files: TrackDynamicObject) | Find an address (Code Files: AddressForm) | Visualizing the camera path while animating (Code Files: VisualizeCameraPath) | Globe Fly tool (Code Files: Fly) | Dynamic display layer (Code Files: MyDynamicLayerClass) | Points along line construction tool (Code Files: PointsAlongLineForm PointsAlongLineTool) | ViperPin tool (Code Files: ViperPinForm ViperPinTool) | Custom map selection commands (Code Files: SelectFeatures) | Tabbed feature inspector (Code Files: TabbedInspector) | Implementing a schematic digitizing tool (Code Files: DigitTool) | Implementing an XML builder external component (Code Files: XMLDocImpl) | Dynamic display—tracking dynamic object (Code Files: TrackObject) | Find the closest intersection from a point (Code Files: FindClosestIntersection) | Edit event listener (Code Files: EventListener) | GraphicTracker with the map (Code Files: AddGT GTMapForm) | Navigating around the GlobeControl (Code Files: Navigation) | Control text symbols using the SymbologyControl (Code Files: TextSymbols) | Angle Angle shape constructor (Code Files: AngleAngleCstr) | Custom vertex editing commands (Code Files: CustomVertexCommands) | Simple dynamic display application (Code Files: MyDynamicLayer) | RSS weather GraphicTracker (Code Files: RSSWeather) | Geoevents in a MapControl (Code Files: GeoEvents) | Move a graphic along a path in ArcMap (Code Files: AnimationUtils MapGraphicKeyframe) | Create custom move, rotate, and scale GeometricEffects within a single project (Code Files: clsGE_Transform_Rotate clsGE_Transform_Scale) | Creating a toolbar of globe tools (Code Files: PointGeometry PolygonGeometry PolylineGeometry) | Buffer snap agent (Code Files: BufferSnap) | Custom scene navigation commands (Code Files: Fly Navigate Pan SelectFeatures SelectGraphics SetObserver TargetCenter TargetZoom ZoomIn ZoomOut) | Building a MapViewer application using the ArcGIS Engine controls (Code Files: AddDateTool) | Custom subtyped command and tool (Code Files: PolyFeedbackTools) | StreetMap routing (Code Files: RoutingForm) | Implementing the ISchematicRulesHelper to easily develop a custom schematic rule (Code Files: BisectorRule) | RSS weather layer (Code Files: AddRSSWeatherLayer AddWeatherItemTool RSSWeatherLayerClass) | Triangle graphic element (Code Files: TriangleElementClass TriangleElementTool) | Clonable object (Code Files: ClonableObjClass) | Custom selection extension (Code Files: SelectByLineTool) | Single line address geocoding (Code Files: SingleLineGeocodingForm) | Create a custom selection extension by extending ArcObjects (Code Files: SelectByLineTool) | Add map surrounds using the SymbologyControl (Code Files: NorthArrows ScaleBars ScaleText) | Create a custom marker placement for placing markers around a point (Code Files: AroundPoint) | Controls commands environment (Code Files: CommandsEnvironment) | Reducing schematic nodes and computing a cumulative attribute via a schematic rule (Code Files: NodeReductionRule) | Draw text on a MapControl (Code Files: DrawText) | Tabbed feature inspector (Code Files: ObjectInspector) | Configure a command for a specific locale (Code Files: CultureTool)

.NET Related Topics

Updating features | Adjusting feature locations with spatial adjustment | Building a map viewing application using the ArcGIS Engine controls | Creating a TIN | Creating class extensions | Creating custom symbols | DataSourcesRaster | Developing SOAP server object extensions | Feature services | Geocode services | Geometry service | Geoprocessing services | Getting started with dynamic display | How to build a polygon using segments and points | How to create a multipoint using the ConstructIntersectionEx method | How to create a polygon | How to create a polyline | How to create a raster dataset | How to draw a point on the screen | How to find the address closest to a point using reverse geocoding | How to geocode a single address | How to get map coordinates from screen coordinates | How to get screen coordinates from map coordinates | How to interpolate spot heights and profile lines on a TIN | How to load data into a network analysis problem | How to modify a specific segment of a polyline | How to modify a specific vertex of a polyline | How to perform an affine transformation | How to perform surface analysis on a terrain dataset | How to query an image service | How to rotate the MapControl display | How to set raster properties when saving as a raster | How to snap a point to a coordinate grid | How to use some basic properties and methods on ICircularArc | How to use the IAffineTransformation2D project and MoveOrigin methods | How to use the ICurve methods | How to use the IEnumSegment methods | How to use the IEnumVertex methods | How to work with geocoding properties | How to work with geoprocessing services | How to work with IBezierCurve | How to work with ICurve methods | How to work with IEllipticArc properties | How to work with IExtrude | How to zoom to selected features in globe | Implementing cloning | Implementing persistence | NetworkAnalysis | Performing basic map functions | Programming with server objects | Server | TrackingAnalyst | Transforming envelopes in the display | Updating attributes of existing features | Using ArcObjects (COM-based) in .NET | Using ArcObjects as tool input | Using feature templates | Using IGeometryBridge or IGeometryBridge2 | Working with map elements | Working with PageLayout elements | Working with query cursors | Working with server contexts | Working with the ArcGIS snapping environment | Working with the edit sketch | Working with vertex attributes | Writing .NET code using methods | Writing .NET code using properties