首页 > 编程知识 正文

wgs84坐标系格式,utm坐标转84坐标怎么转换

时间:2023-05-05 11:09:56 阅读:155887 作者:2989

本文利用proj4库进行WGS84坐标和UTM坐标的相互旋转。

qt 5.12.2编译器MVCS2015

proj4源代码和编译的文件(使用mvcs 2015发行版64编译,根据需要在相应的命令行编译) :网络磁盘连接33603359 pan.Baidu.com/s/10450

qt.pro配置:对应于自己的路径

coorconv.h

# ifndefccoorconv _ h # defineccoorconv _ h # define accept _ use _ of _ deprecated _ proj _ API _ h # include proj _ ate }UTMCorr; typedef struct _ WGS 84 corr { double log; 双lat; }WGS84Corr; classccoorconv { private : proj pjm _ pj _ WGS 84; //球体:wgs84,投影:经纬度投影projPJ m_pj_utm; //球体:wgs84,投影UTM int m_nUTMZone; //utm带编号bool m_bNorth; //北半球public: CCoorConv (是否; tmdsl (; //WGS 84-utmboollatlontoutmxy (const WGS 84 corr WGS,UTMCorr utm ); //UTM-WGS 84 boolutmxytolatlon (constutmcorrutm,WGS84Corr wgs ); (; #endif coorconv.cpp

# include ' coor conv.h ' # include iostream # includestringusingnamespacestd; CCoorConv:CCoorConv () :m_nutmzone(-10000 )、m_bnorth ) false )、m_pj_utm ) nullptr ) { constchonstchtch }CCoorConv:tmdsl () if ) m_pj_UTM!=nullptr(pj_free ) m_pj_UTM ); m_pj_utm=nullptr; }if(m_pj_WGS84!=nullptr(pj_free ) m_pj_WGS84 ); m_pj_wgs84=nullptr; } boolccoorconv :3360 latlontoutmxy (const WGS 84 corr WGS,UTMCorr utm ) intnutmzone=(int ) ) wgs.log 186.0 )/6.0 bool BBS 真:假; if(m_nutmzone!=nUTMZone || m_bNorth!=Bnorth((/) proj=ut mzone=50 datum=WGS 84 units=MnO _ defs ); //' proj=ut mzone=48 south datum=WGS 84 units=MnO _ defs ' STD 33603360 stringqstrutm=' proj=ut mzone=' STD 33603333333333330 bNorth () { qstrUTM =' south '; } qstr UTM=' datum=WGS 84 units=MnO _ defs '; if(m_pj_UTM!=nullptr(pj_free ) m_pj_UTM ); m_pj_utm=NULL; } string strUTM=qstrUTM; const char *pUTM=strUTM.c_str (; m_pj_UTM=pj_init_plus(putm; m_nUTMZone=nUTMZone; m_bNorth=bNorth; } utm.x=wgs.log * DEG_TO_RAD; utm.y=wgs.lat * DEG_TO_RAD; pj_transform(m_pj_WGS84,m_pj_utm,1,1,utm.x,utm.y,nullptr ); 返回真; } boolccoorconv :3360 utmxytolatlon (constutmcorrutm,WGS84Corr wgs ) if(m_pj_utm==nullptr ) { return false; } wgs.log=utm.x; wgs.lat=utm.y; pj_transform(m_pj_UTM,m _ pj _ WGS 84,1,1,wgs.log,wgs.lat,nullptr ); wgs.log=wgs.log * RAD_TO_DEG; wgs.lat=wgs.lat * RAD_TO_DEG; 返回真; } main.cpp

# include ' coor conv.h ' # includeqdebug.hint main (int argc,char* argv舒适牛排) { CCoorConv conv_; UTMCorr utm; WGS84Corr wgs; wgs.log=116.26786647; wgs.lat=38.09131733; conv_.latlontoutmxy(WGS,utm ); qstringx1=qstring :3360 number (UTM.x,10,3 ); qstringy1=qstring :3360 number (UTM.y,10,3 ); qstringstr1=qstring('%1%2”).arg ) x1 ).arg ) y1 ); qdebug(str1; conv_.utmxytolatlon(UTM,wgs ); qstringx2=qstring :3360 number (WGS.log,10,8 ); qstringy2=qstring :3360 number (WGS.lat,10,8 ); qstringstr2=qstring('%1%2”).arg ) x2 ).arg ) y2 ); qDebug ) ) str2; 返回0; }

精度没有欠缺。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。