C# ArcGISEngine通过经纬度坐标获取像元值
通过某个地图中的点的经纬度坐标,获取该坐标对应的删格数据中的像元值
private double GetCellValue() { //从数据库获取该站点的经纬度坐标 dsPoint = stationBLL.GetAltBySID(Convert.ToInt32(StationIDList[i].ToString())); IPoint point = new PointClass(); point.X = Convert.ToDouble(dsPoint.Tables[0].Rows[0]["LON"].ToString());//X经度 point.Y = Convert.ToDouble(dsPoint.Tables[0].Rows[0]["LAT"].ToString());//Y纬度 //加载本地删格数据 IRaster2 pRaster_AWC = RasterHelper.GetRaster2(strAWCPath); //获取行列位置值 int column = pRaster2.ToPixelColumn(point.X);//像元的列号 在x轴上 int row = pRaster2.ToPixelRow(point.Y); //像元的行号 在y轴上 double cellValue=0; //1.特殊情况:如果点行列值为负值或者大于总的行列值,就为无效值 if (column < 0 || row < 0)//column>ndtgCol || row
/// 通过删格文件完整路径打开删格Raster2 /// /// 删格完整路径 /// 返回IRaster2的删格 public static IRaster2 GetRaster2(string FilePath) { IRaster2 pRaster2=null; try { if (!FilePath.Equals("")) { IRasterLayer pRasterLayer = new RasterLayerClass(); //加载本地路径下的tif文件 pRasterLayer.CreateFromFilePath(FilePath); pRaster2 = pRasterLayer.Raster as IRaster2; //释放资源 Marshal.ReleaseComObject(pRasterLayer); } } catch (Exception ex) { LogHelper.LogError("RasterHelper:通过完整路径打开删格Raster2异常", ex); throw; } return pRaster2; }