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]

这样,定义的坐标系就不会有错误了。(未完待续,今天先睡了。)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值