一:用于获取两个几何图形的距离
代码使用示例:
/// <summary>
/// 获取两个几何图形之间的距离
/// </summary>
/// <param name="pGeometryA">几何图形1</param>
/// <param name="pGeometryB">几何图形2</param>
/// <returns>计算两个几何图形之间的距离</returns>
private double GetTwoGeometryDistance(IGeometry pGeometry1, IGeometry pGeometry2)
{
IProximityOperator pProOperator = pGeometry1 as IProximityOperator;
if (pGeometry1 != null|| pGeometry2 != null)
{
double distance= pProOperator.ReturnDistance(pGeometry2);
return distance;
}
else
{
return 0;
}
}
二:给定一个的Point,获取该Point在另一个几何图形上最近的点(NearestPoint)
代码使用示例:
/// <summary>
/// 给定一个的Point,获取该Point在另一个几何图形上最近的点
/// </summary>
/// <param name="pInputPoint">给定的点要素Point</param>
/// <param name="pGeometry">几何图形要素Geometry</param>
/// <returns></returns>
public static IPoint NearestPoint(IPoint pPoint, IGeometry pGeometry)
{
try
{
IProximityOperator pProximity = (IProximityOperator)pGeometry;
IPoint pNearestPoint = pProximity.ReturnNearestPoint(pPoint, esriSegmentExtension.esriNoExtension);
return pNearestPoint;
}
catch (Exception Err)
{
Console.WriteLine("获取最近点失败!");
return null;
}
}