验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

怎么使用Qt+GDAL库实现制作经纬度坐标转换工具

阅读:1112 来源:乙速云 作者:代码code

怎么使用Qt+GDAL库实现制作经纬度坐标转换工具

1、功能界面

怎么使用Qt+GDAL库实现制作经纬度坐标转换工具

下面是用Global Mapper计算的结果,证明计算正确。

怎么使用Qt+GDAL库实现制作经纬度坐标转换工具

2、功能介绍

  • 支持CGCS2000/WGS84/XIAN80/BEIJING54四种常用坐标系;

  • 自动判断输入经纬度和X/Y坐标的合法性;

  • 依据标准3°带自动计算中央子午线;

  • 支持经纬度转投影坐标以及投影坐标转经纬度。

3、实现逻辑

1)利用GDAL库构建基础坐标系数据。

OGRSpatialReference m_spatialReference;

if(m_Coordinate == CoordinateDialog::CGCS2000)
    {
        qDebug() << "CGCS2000";
        m_spatialReference.importFromEPSG(4490);
    }
    else if(m_Coordinate == CoordinateDialog::WGS84)
    {
        qDebug() << "WGS84";
        m_spatialReference.importFromEPSG(4326);
    }
    else if(m_Coordinate == CoordinateDialog::XIAN80)
    {
        qDebug() << "XIAN80";
        m_spatialReference.importFromEPSG(4610);
    }
    else if(m_Coordinate == CoordinateDialog::BeiJing54)
    {
        qDebug() << "BeiJing54";
        m_spatialReference.importFromEPSG(4214);
    }

2)设定投影坐标系并进行转换

    m_spatialReference.SetTM(0.0, nMeridian, 1.0, nAreacode*1000000 + nOffsetE, nOffsetN);
	OGRSpatialReference* pLonLat = m_spatialReference.CloneGeogCS();
	
	// X、Y转经纬度
	OGRCoordinateTransformation* pXY2LonLat = OGRCreateCoordinateTransformation(&m_spatialReference, pLonLat);
	// 经纬度转X、Y
	OGRCoordinateTransformation* pXY2LonLat = OGRCreateCoordinateTransformation(&m_spatialReference, pLonLat);
	
    pXY2LonLat->Transform(1, &dLon, &dLat)
分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
下一篇: CesiumJS源码分析
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>