温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2023-04-17 11:20:00 来源:亿速云 阅读:169 作者:iii 栏目:开发技术

今天小编给大家分享一下怎么使用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)

以上就是“怎么使用Qt+GDAL库实现制作经纬度坐标转换工具”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI