本文主要介绍:利用gdal的函数,根据DEM图像,生成等高线或等值线,介绍两种方法:一种是利用GDAL自带的exe文件,一种是利用GDAL函数。
说明:GDAL使用版本为Gdal2.0.0。
1 利用GDAL自带exe,生成等高线
1.1 参数说明
具体说明可见:GDAL实用工具简介
官网说明:gdal_contour.exe
1.2 调用exe程序
//数字 转 string
string Float2String(float num, string format)
{
char temp[100];
sprintf_s(temp, format.c_str(), num);//保留2位小数
string str = temp;
return str;
}
/********************************************************************
函数功能:调用gdal自带exe生成等高线
输入参数:
imgPath :dem文件路径
shpPath :等高线矢量图保存路径
dfContourInterval :等高线间隔
备注:
需要头文件: #include <windows.h>
*********************************************************************/
bool CalContourByExe(string imgPath, string shpPath, double dfContourInterval)
{
string temp = "gdal_contour.exe -a Height "; //海拔高度对应的字段名为Height 也可以改为其它名字
temp = imgPath + " " + shpPath + " " + "-i " + Float2String(dfContourInterval, "%.1f");;
STARTUPINFO si;
memset(&si,0,sizeof(STARTUPINFO));//初始化si在内存块中的值(详见memset函数)
si.cb=sizeof(STARTUPINFO);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
PROCESS_INFORMATION pi;//必备参数设置结束
WCHAR wcharTemp[