使用GDAL为tiff图像写入WKT字符串表达的空间参照和投影坐标系信息
WKT字符串表达空间参照和投影坐标系
WKT(Well-Known Text)是一种文本标记语言,其一种重要用途就是表达地理坐标信息。例如:
PROJCS["UTM_Zone_51N",
GEOGCS["GCS_Geographic Coordinate System",DATUM["D_WGS84",SPHEROID["WGS84",6378137.000000,298.257224]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],
PROJECTION["Transverse_Mercator"],
PARAMETER["latitude_of_origin",0.000000],
PARAMETER["central_meridian",123.000000],
PARAMETER["scale_factor",0.999600],
PARAMETER["false_easting",500000.000000],
PARAMETER["false_northing",0.000000],
UNIT["Meter",1]]
它具有多个版本,尽量使用标准版本以便被更多程序识别认可。关于WKT可以点击维基百科。
GDAL安装
GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。可以进行遥感图像的读、写和更新。新版本的GDAL还支持bigtiff的操作,功能强大,推荐尝试。
安装GDAL推荐使用vcpkg。
根据教程安装vcpkg,或根据教程更新vcpkg后,运行命令
vcpkg install gdal:x64-windows
等待安装完成即可在VS中使用。
GDAL写入投影信息示例程序
#include"gdal_priv"
int main()
{
设置一些变量
string strWtkFile="";
string strPN="";
string strPrjString=""; WKT内容
GDALRegister_GTiff(); 注册GeoTiff图像引擎
GDALDataset* onedata = (GDALDataset*)GDALOpen(strPN.c_str(), GDALAccess::GA_Update);/// 以更新模式打开图像
OGRSpatialReference osr;
OGRErr err_ogr = osr.importFromWkt(strPrjString.c_str());/// 载入WKT字符串
CPLErr err = onedata->SetSpatialRef(&osr);/// 设置空间参考系信息(投影坐标系)
GDALClose(onedata);
return 0;
}