在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);
}
很明顯,源碼中的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]