﻿ QueryPointAndDistance(Multipart,SegmentExtensionType,MapPoint,AsRatioOrLength,Double,Double,LeftOrRightSide) Method—ArcGIS Pro
ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Core.Geometry Namespace / GeometryEngine Class / QueryPointAndDistance Method / QueryPointAndDistance(Multipart,SegmentExtensionType,MapPoint,AsRatioOrLength,Double,Double,LeftOrRightSide) Method
The curve on which to find the closest point. The curve may be extended.
Describes if, how and where to extend segments.
The input point.
Determines whether the distanceAlongCurve is returned as a ratio of the curve length or as length from the start point.
Describes how far along the closest point is along the curve, either as a ratio or length.
Describes how far the point is from the curve.
Describes if the point is on the left or right side of the curve. The direction of the curve determines its left and right sides. If the point is on the curve, then LeftSide is returned.
Example

In This Topic
QueryPointAndDistance(Multipart,SegmentExtensionType,MapPoint,AsRatioOrLength,Double,Double,LeftOrRightSide) Method
In This Topic
Finds the point on the curve closest to inPoint, then copies that point to outPoint. Also calculates related items.
Syntax
```public MapPoint QueryPointAndDistance(
Multipart multipart,
SegmentExtensionType extensionType,
MapPoint inPoint,
AsRatioOrLength asRatioOrLength,
out double distanceAlongCurve,
out double distanceFromCurve,
out LeftOrRightSide whichSide
)```
```Public Overloads Function QueryPointAndDistance( _
ByVal multipart As Multipart, _
ByVal extensionType As SegmentExtensionType, _
ByVal inPoint As MapPoint, _
ByVal asRatioOrLength As AsRatioOrLength, _
ByRef distanceAlongCurve As Double, _
ByRef distanceFromCurve As Double, _
ByRef whichSide As LeftOrRightSide _
) As MapPoint```

#### Parameters

multipart
The curve on which to find the closest point. The curve may be extended.
extensionType
Describes if, how and where to extend segments.
inPoint
The input point.
asRatioOrLength
Determines whether the distanceAlongCurve is returned as a ratio of the curve length or as length from the start point.
distanceAlongCurve
Describes how far along the closest point is along the curve, either as a ratio or length.
distanceFromCurve
Describes how far the point is from the curve.
whichSide
Describes if the point is on the left or right side of the curve. The direction of the curve determines its left and right sides. If the point is on the curve, then LeftSide is returned.

#### Return Value

MapPoint representing the closest point on the curve.
Exceptions
ExceptionDescription
Either multipart or inPoint or both are null or empty.
Example
QueryPointAndDistance
```// Horizontal line segment
List<MapPoint> linePts = new List<MapPoint>();
Polyline polyline = PolylineBuilderEx.CreatePolyline(linePts);
bool isSimple = GeometryEngine.Instance.IsSimpleAsFeature(polyline);

// Don't extent the segment
SegmentExtensionType extension = SegmentExtensionType.NoExtension;

// A point on the line segment
MapPoint inPoint = MapPointBuilderEx.CreateMapPoint(2, 1, SpatialReferences.WGS84);

double distanceAlongCurve, distanceFromCurve;
LeftOrRightSide whichSide;
AsRatioOrLength asRatioOrLength = AsRatioOrLength.AsLength;

MapPoint outPoint = GeometryEngine.Instance.QueryPointAndDistance(polyline, extension, inPoint, asRatioOrLength, out distanceAlongCurve, out distanceFromCurve, out whichSide);
// outPoint = 2, 1
// distanceAlongCurve = 1
// distanceFromCurve = 0
// whichSide = GeometryEngine.Instance.LeftOrRightSide.LeftSide

// Extend infinitely in both directions
extension = SegmentExtensionType.ExtendTangents;

// A point on the left side
inPoint = MapPointBuilderEx.CreateMapPoint(16, 6, SpatialReferences.WGS84);
asRatioOrLength = AsRatioOrLength.AsRatio;

outPoint = GeometryEngine.Instance.QueryPointAndDistance(polyline, extension, inPoint, asRatioOrLength, out distanceAlongCurve, out distanceFromCurve, out whichSide);
// outPoint = 16, 1
// distanceAlongCurve = 1.5
// distanceFromCurve = 5
// whichSide = GeometryEngine.Instance.LeftOrRightSide.LeftSide
```
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.