GDAL中定义坐标系
在GDAL中定义坐标系,是很简单的一件事情。主要参考类OGRSpatialReference。
根据官方的操作文档(http://www.gdal.org/osr_tutorial.html),我们先定义一个坐标系:
#include<gdal_priv.h>
#include <ogr_spatialref.h>
int main()
{
GDALAllRegister();
OGRSpatialReference oSRS;
oSRS.SetGeogCS( "My geographic coordinate system",
"WGS_1984",
"My WGS84 Spheroid",
SRS_WGS84_SEMIMAJOR, SRS_WGS84_INVFLATTENING,
"Greenwich", 0.0,
"degree", SRS_UA_DEGREE_CONV);
}
但是上面的代码运行却发生了错误:error C2664: “OGRSpatialReference::SetGeogCS”: 不能将参数 9 从“const char [19]”转换为“double”。
很明显,源码中的SRS_UA_DEGREE_CONV定义的时候是 const char,这个时候不能转为double,参考gdal的bug说明(http://trac.osgeo.org/gdal/ticket/3775)。
修改后的源码为:
[code=cpp]
#include<gdal_priv.h>
#include <ogr_spatialref.h>
int main()
{
GDALAllRegister();
OGRSpatialReference oSRS;
oSRS.SetGeogCS( “My geographic coordinate system”,
“WGS_1984”,
“My WGS84 Spheroid”,
SRS_WGS84_SEMIMAJOR, SRS_WGS84_INVFLATTENING,
“Greenwich”, 0.0,
“degree”, atof(SRS_UA_DEGREE_CONV));
}
[/code]
这样,定义的坐标系就不会有错误了。(未完待续,今天先睡了。)
转载自:https://blog.csdn.net/zimizile/article/details/41917691