_银子

提供更专注、更专心、更专业的服务
  首页  :: 联系 :: 订阅 订阅  :: 管理

ArcEngine查询两几何对象间的距离

Posted on 2013-05-22 11:37  _银子  阅读(897)  评论(0)    收藏  举报

以下代码片段演示如何使用IProximityOperator接口获取给定点与要查询的几何图形的最近点:

    /// 在pGeometry上返回一个离pInputPoint最近的point

         /// </summary>

         /// <param name="pInputPoint">给定的点对象</param>

         /// <param name="pGeometry">要查询的几何图形</param>

         /// <returns>the nearest Point</returns>

          private IPoint NearestPoint(IPoint  pInputPoint, IGeometry pGeometry)

         {

             try

             {

                 IProximityOperator pProximity = (IProximityOperator)pGeometry;

                 IPoint pNearestPoint = pProximity.ReturnNearestPoint(pInputPoint, esriSegmentExtension.esriNoExtension);

                 return pNearestPoint;

             }

             catch(Exception Err)

             {

                 MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                 return null;

             }

 }

 

以下代码片段演示如何使用IProximityOperator接口查询给定的两个几何对象的距离:

    /// <summary>

         /// 获取两个几何图形的距离

        /// </summary>

         /// <param name="pGeometryA">几何图形A</param>

         /// <param name="pGeometryB">几何图形B</param>

         /// <returns>两个几何图形的距离</returns>

         private double  GetTwoGeometryDistance(IGeometry pGeometryA, IGeometry pGeometryB)

         {          

             IProximityOperator  pProOperator = pGeometryA as IProximityOperator;

             if (pGeometryA!=null|| pGeometryB !=null)

             {

                double distance=  pProOperator.ReturnDistance(pGeometryB);

                return distance;

             }

             else

             {

                 return 0;

             }

      }