http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcObjects开发 >> 正文

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

作者:JinDin    文章来源:ESRI    点击数:    更新时间:2009-8-5
摘要:获取点坐标和高程(C# +ArcEngine93),程序说明:1.需要一个带坐标系的栅格数据.2.关键程序很简单,用关键接口ISurface,方法用ISurface.GetElevation().

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

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

程序下载


关键代码如下:

  1. /// <summary>
  2.         /// 获取x,y,高程值
  3.         /// </summary>
  4.         /// <param name="raster"></param>
  5.         /// <param name="point"></param>
  6.         /// <param name="ptX"></param>
  7.         /// <param name="ptY"></param>
  8.         /// <param name="ptHeight"></param>
  9.         void getXYAndHeight(IRaster raster, IPoint point, out double ptX, out double ptY, out double ptHeight)
  10.         {
  11.             ptX = 0.0;
  12.             ptY = 0.0;
  13.             ptHeight = 0.0;
  14.             try
  15.             {
  16.                 IGeoDataset geoDt = raster as IGeoDataset;
  17.                 ISpatialReference spatialreference = geoDt.SpatialReference;

  18.                 IRasterSurface rasterSurface = new RasterSurfaceClass();
  19.                 rasterSurface.PutRaster(raster, 0);
  20.                 ISurface surface = rasterSurface as ISurface;

  21.                 if (point.SpatialReference == null)
  22.                 {
  23.                     point.Project(spatialreference);
  24.                     ptX = point.X;
  25.                     ptY = point.Y;
  26.                     //获取高程
  27.                     ptHeight = surface.GetElevation(point);
  28.                 }
  29.                 else
  30.                 {
  31.                     ptX = point.X;
  32.                     ptY = point.Y;
  33.                     //获取高程
  34.                     point.Project(spatialreference);
  35.                     ptHeight = surface.GetElevation(point);
  36.                 }
  37.             }
  38.             catch (Exception ex)
  39.             {
  40.                 MessageBox.Show(ex.Message);
  41.             }
  42.         }
复制代码
1.jpg
2.jpg
希望能给初学者一点帮助.
程序做得不是很完善,欢迎各位修改,提意见.

Tags:ArcEngine  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图