本文整理汇总了C#中Geometry.GetNearestCoordinate方法的典型用法代码示例。如果您正苦于以下问题:C# Geometry.GetNearestCoordinate方法的具体用法?C# Geometry.GetNearestCoordinate怎么用?C# Geometry.GetNearestCoordinate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Geometry
的用法示例。
在下文中一共展示了Geometry.GetNearestCoordinate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetTwoClosestVertices
//Vertices must be adjacent in shape, i.e. the end points of the closest segment
private static CoordinateCollection GetTwoClosestVertices(Geometry shape, Coordinate searchPoint)
{
if (shape == null)
throw new ArgumentNullException("shape");
if (searchPoint == null)
throw new ArgumentNullException("searchPoint");
if (searchPoint.IsEmpty)
throw new ArgumentException("searchPoint is not valid");
if (!shape.IsValid || shape.IsEmpty || (shape.Dimension != GeometryDimension.Line && shape.Dimension != GeometryDimension.Area))
throw new ArgumentException("shape is not valid");
int partIndex = -1;
int priorVertexIndex = -1;
Double unusedDistance = -1;
var foundPoint = new Coordinate();
if (shape.GetNearestCoordinate(searchPoint, foundPoint, ref partIndex, ref priorVertexIndex, ref unusedDistance))
{
//priorVertexIndex + 1 will always be valid when shape is a valid, non-empty line or area
Coordinate pt1 = shape.Parts[partIndex][priorVertexIndex];
Coordinate pt2 = shape.Parts[partIndex][priorVertexIndex + 1];
if (pt1.SquareDistance(searchPoint) < pt2.SquareDistance(searchPoint))
return new CoordinateCollection {pt1, pt2};
return new CoordinateCollection {pt2, pt1};
}
throw new InvalidOperationException("shape.GetNearestCoordinate(searchPoint) failed");
}