格式
方式 | 格式 | 单位 | 用途/注意事项 |
---|---|---|---|
度 | [d]dd.ddddddd | 度 | 百度地图和google地图 |
度-分 | [d]ddmm.mmmmmm | dd单位是度,mm.mmmmmm单位是分 | GPGGA |
度-分-秒 | [d]ddmmss.ss | dd单位是度,mm单位是分,ss.ss单位是秒 | google地图 |
平面坐标 | 浮点数 | 米 | gps定位显示中,需要提前设定utc时区 |
纬度只有两个d,代表-90~90度
经度有三个d,代表-180~180度
转换
“度” <–”度-分”<–”度-分-秒”
dd.ddddddd = dd+mm.mmmmmm/60 = dd+mm/60+ss.ss/(60*60)
“度” –>”平面坐标” :代码大概如下
#include <proj_api.h>
const std::string UTM_TARGET ="+proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ";
nh.param("proj4_text", utm_target_param, UTM_TARGET);
_wgs84pj_source = pj_init_plus(WGS84_TEXT.c_str());
_utm_target = pj_init_plus(utm_target_param.c_str());
pj_transform(_wgs84pj_source, _utm_target, 1, 1, &x, &y, NULL);
一般在UTM_TARGET中只需修改+zone参数即可,50代表北京时区
pj_transform(源坐标系(wgs84指的是地球),目标坐标系(根据zone时区),点的数量,点的偏移,x坐标,y坐标,z坐标)。参考链接