『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

获取点坐标和高程(C# +ArcEngine93)

获取点坐标和高程(C# +ArcEngine93)
获取点坐标和高程(C# +ArcEngine93),程序说明:1.需要一个带坐标系的栅格数据.2.关键程序很简单,用关键接口ISurface,方法用ISurface.GetElevation().

       获取点坐标和高程(C# +ArcEngine93)

       程序说明:

       1.需要一个带坐标系的栅格数据.

       2.关键程序很简单,用关键接口ISurface,方法用ISurface.GetElevation().

       程序下载

       关键代码如下:

/// <summary>

        /// 获取x,y,高程值

        /// </summary>

        /// <param name="raster"></param>

        /// <param name="point"></param>

        /// <param name="ptX"></param>

        /// <param name="ptY"></param>

        /// <param name="ptHeight"></param>

        void getXYAndHeight(IRaster raster, IPoint point, out double ptX, out double ptY, out double ptHeight)

        {

            ptX = 0.0;

            ptY = 0.0;

            ptHeight = 0.0;

            try

            {

                IGeoDataset geoDt = raster as IGeoDataset;

                ISpatialReference spatialreference = geoDt.SpatialReference;

 

                IRasterSurface rasterSurface = new RasterSurfaceClass();

                rasterSurface.PutRaster(raster, 0);

                ISurface surface = rasterSurface as ISurface;

 

                if (point.SpatialReference == null)

                {

                    point.Project(spatialreference);

                    ptX = point.X;

                    ptY = point.Y;

                    //获取高程

                    ptHeight = surface.GetElevation(point);

                }

                else

                {

                    ptX = point.X;

                    ptY = point.Y;

                    //获取高程

                    point.Project(spatialreference);

                    ptHeight = surface.GetElevation(point);

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

      京ICP备2025132830号-1 京公网安备 号