愿你出走半生,归来仍是少年!
环境:.NET FrameWork4.5、Dotspatial 1.9
业务需要根据已有的Dem数据(tif)获取指定坐标点的高程数据 ,因此有此记录。
DotSpatial博主于2016年左右开始接触,有强大的Gis功能和极高的集成度。此处使用其集成了Gdal后的功能特性进行Gdal Raster文件的读取。其思路为加载tif文件,将地理坐标转换为像素坐标,并获取像素点的高程数据,具体实现如下:
public class DemRasterHelper
{
IRaster raster;
public DemRasterHelper(string tifPath)
{
GdalRasterProvider gdalRasterProvider = new GdalRasterProvider();
raster = gdalRasterProvider.Open(tifPath);
}
/// <summary>
/// 获取高程
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <returns></returns>
public double GetElevation(double x, double y)
{
try
{
if (true)
{
}
var index = raster.ProjToCell(x, y);
var height = raster.Value[index.Row, index.Column];
return height;
}
catch (Exception ex)
{
return -9999;
}
}
}