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

获取点坐标和高程(C# +ArcEngine93)
本帖最后由 JinDin 于 2009-2-24 16:41 编辑

程序之前写过一点,正好下午做项目时朋友需要读取点的高程值,借此机会就把程序整理了一遍.
在ESRI社区呆了很久,一直都是down 别人的例子,这次我也上传一次.大家相互学习.

程序说明:
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);
            }
        }

posted @ 2009-03-12 14:52  闫磊博客  阅读(1480)  评论(2)    收藏  举报