项目中用到经纬度相互转换,自己写感觉太麻烦,查询后发现利用geos和proj4可以完成坐标转换,现在记录一下方便以后自己查询。

    //经纬度转utm坐标int convert_lonlat_utm(const new3s_PointXYZ &lon_lat_coord, new3s_PointXYZ &utm_coord){OGRSpatialReference *RefSource = new OGRSpatialReference;RefSource->SetWellKnownGeogCS("WGS84");OGRSpatialReference *RefTarget = new OGRSpatialReference;RefTarget = RefSource->CloneGeogCS();int utmzone = lon_lat_coord.get_x() / 6 + 31;RefTarget->SetProjCS("UTM(WGS84) in northern hemisphere.");RefTarget->SetUTM(utmzone, TRUE);OGRCoordinateTransformation *poTransform = OGRCreateCoordinateTransformation(RefSource, RefTarget);double tempX = lon_lat_coord.get_x();double tempY = lon_lat_coord.get_y();double tempZ = lon_lat_coord.get_z();poTransform->Transform(1, &tempX, &tempY, &tempZ);utm_coord.set_x(tempX);utm_coord.set_y(tempY);utm_coord.set_z(tempZ);return utmzone;
}

这里返回的是条带数,因为在下面UTM坐标转经纬度的时需要条带数。

//utm转经纬度
void convert_utm_lonlat(const new3s_PointXYZ &utm_coord, const int &utmzone, new3s_PointXYZ &lon_lat_coord)
{//建立投影坐标系到经纬度坐标系的转换OGRSpatialReference *RefSource = new OGRSpatialReference;RefSource->SetWellKnownGeogCS("WGS84");RefSource->SetProjCS("UTM(WGS84) in northern hemisphere.");RefSource->SetUTM(utmzone, TRUE);OGRSpatialReference *RefTarget = new OGRSpatialReference;RefTarget = RefSource->CloneGeogCS();OGRCoordinateTransformation *poTranform = OGRCreateCoordinateTransformation(RefSource, RefTarget);OGRPoint *poPoint = new OGRPoint();double tempx = utm_coord.get_x();double tempy = utm_coord.get_y();double tempz = utm_coord.get_z(); poTranform->Transform(1, &tempx, &tempy, NULL);lon_lat_coord = new3s_PointXYZ(tempx, tempy, tempz);

}

utm坐标和经纬度相互转换相关推荐

  1. PHP墨卡托坐标转经纬度,墨卡托坐标与经纬度相互转换的方法

    最近用到了墨卡托坐标转换经纬度的需求,原理什么的不想多说,需要的可以查看这里: 麦卡托投影法 Web Mercator 经纬度转Wev墨卡托 版本1 dvec3 CMathEngine::lonLat ...

  2. UTM坐标与GPS经纬度(WGS84)的相互转换

    一.UTM介绍 统一横轴墨卡托投影系统(Universal Transverse Mercator,UTM) 参考: https://www.youtube.com/watch?v=LcVlx4Gur ...

  3. 经纬度转换为UTM坐标

    概念 : UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航.将地球划分为60个纵向的区域.每个区域宽6度,从赤道开始往南北两级方向划分.每个区域都有一个特定的字母. 转 ...

  4. js 封装经纬度成json_R实现地理位置与经纬度相互转换

    原标题:R实现地理位置与经纬度相互转换 本实例要实现目标通过输入城市名或者地名,然后找出其经度纬度值,以及通过可视化展现其线路流向以及周边地图展示 address_list数据: 山西省太原市小店区亲 ...

  5. 根据php经纬度百度地图打点,PHP使用百度地图获取指定地址坐标:经纬度(图文+视频)...

    本篇文章主要给大家介绍PHP使用百度地图获取指定地址坐标之经纬度的实现方法. 在之前的文章[PHP使用百度地图获取指定地址坐标:创建AK]中,已经给大家介绍了如何在百度地图开放平台中创建AK(api ...

  6. c# WGS84坐标转换成UTM坐标

    通过查阅相关资料,有一篇博客里面给出了WGS84坐标转换成UTM坐标的功能,该博主使用matlab程序实现坐标的转换,基于已有的公式,用c#语言实现坐标的转换. 参考的博客连接如下: https:// ...

  7. 地球上的点【经纬度】到几个点形成的折现或者直线最短的距离和折现上点的坐标【经纬度】

    地球上的点[经纬度]到几个点形成的折现或者直线最短的距离和折现上点的坐标[经纬度] 情景 步骤 做法:利用高德JSAPI提供的函数计算 过程 产物截图 代码截图 界面截图 点击执行会生成export. ...

  8. GPS坐标转UTM坐标

    文章目录 1 代码 2 参考 1 代码 直接调用就好 /* Taken from utexas-art-ros-pkg:art_vehicle/applanix *//** Conversions b ...

  9. 瓦片地图坐标与经纬度换算公式python实现

    经纬度和瓦片地图坐标对应关系本质上是由墨卡托投影实现 地图是显示在平面上的,因此需要将球面坐标转换为平面坐标,这个转换过程称为投影.最常见的投影是墨卡托(Mercator)投影,它具有等角性质,即球体 ...

最新文章

  1. 如何创建和获取正则对象?
  2. 台湾大学林轩田机器学习技法课程学习笔记10 -- Random Forest
  3. 关于dismissViewControllerAnimated值得注意的一点(deinit)
  4. 还需要更多东西吗?这里有一些要做的事情
  5. python精彩编程200例-python趣味编程100例(99个)
  6. zju眨眼数据集_浙大 CBIST团队发布高质量的多中心MRI公开数据集
  7. “他们”将变身为全国最大的房屋租赁供应商
  8. TFTP 简单文件传输协议 简介
  9. win10如何修改鼠标指针样式
  10. Java常量池详解:字符串常量池、Class常量池、运行时常量池 三者关系
  11. 57-20210402华为海思Hi3516DV300的linux系统下NFS文件系统挂载(eMMC模式)
  12. Facebook频繁封号,如何解封?
  13. 计算机导论alu的全名,计算机导论试题1.doc
  14. 调用后台接口返回报错前端隐藏提示_腾讯社交联盟广告
  15. CAD的DXF解析中LWPOLYLINE多线段凸度的相关概念和弧度转换
  16. 电脑键盘部分按键失灵_键盘失灵个别字母不灵怎么处理_电脑键盘个别键没反应如何修复...
  17. 哈工大人工智能暑期课实践项目——手写体识别四则运算
  18. 用python决定吃什么_如何决定今天吃什么?
  19. WMI_04_常见的WMI类的属性
  20. java环境变量设置 java_home

热门文章

  1. java.exe和javaw.exe有什么区别?
  2. 阿里云视频点播vod视频无法播放预览的问题
  3. CET-4、CET-6复习
  4. python读取odb_Python提取Abaqus ODB中的场变量(Field output)与历史变量(History output)方法...
  5. 【转录调控网络】典型的基因转录调控网络推导方法——布尔网络
  6. 如何使用python快速完成批量导入一个文件夹下多个excel文件
  7. 技术人员考研英语2001年-2007
  8. 基于SSM企业员工测评系统
  9. QPSK与QDPSK调制与解调(待更新)
  10. 易优cms 专业授权域名的验证教程指南 Eyoucms快速入门