两个不同的三维空间直角坐标系之间转换时,通常使用七参数模型(数学方程组)。在该模型中有七个未知参数,即:
  (1)三个坐标平移量(△X,△Y,△Z),即两个空间坐标系的坐标原点之间坐标差值;
  (2)三个坐标轴的旋转角度(△α,△β,△γ),通过按顺序旋转三个坐标轴指定角度,可以使两个空间直角坐标系的XYZ轴重合在一起。
  (3)尺度因子K,即两个空间坐标系内的同一段直线的长度比值,实现尺度的比例转换。通常K值几乎等于1。 以上七个参数通常称为七参数。运用七参数进行的坐标转换称为七参数坐标转换。

下面来看布尔沙模型计算,算法来源proj4j-0.1.1.jar

七参数正算

 public void transformToGeocentricFromWgs84(ProjCoordinate p) {if (this.transform.length == 3){p.x -= this.transform[0];p.y -= this.transform[1];p.z -= this.transform[2];}else if (this.transform.length == 7){double Dx_BF = this.transform[0];double Dy_BF = this.transform[1];double Dz_BF = this.transform[2];double Rx_BF = this.transform[3];double Ry_BF = this.transform[4];double Rz_BF = this.transform[5];double M_BF = this.transform[6];double x_tmp = (p.x - Dx_BF) / M_BF;double y_tmp = (p.y - Dy_BF) / M_BF;double z_tmp = (p.z - Dz_BF) / M_BF;p.x = (x_tmp + Rz_BF * y_tmp - Ry_BF * z_tmp);p.y = (-Rz_BF * x_tmp + y_tmp + Rx_BF * z_tmp);p.z = (Ry_BF * x_tmp - Rx_BF * y_tmp + z_tmp);}}

七参数反算

 public void transformFromGeocentricToWgs84(ProjCoordinate p){if (this.transform.length == 3){p.x += this.transform[0];p.y += this.transform[1];p.z += this.transform[2];}else if (this.transform.length == 7){double Dx_BF = this.transform[0];double Dy_BF = this.transform[1];double Dz_BF = this.transform[2];double Rx_BF = this.transform[3];double Ry_BF = this.transform[4];double Rz_BF = this.transform[5];double M_BF = this.transform[6];double x_out = M_BF * (p.x - Rz_BF * p.y + Ry_BF * p.z) + Dx_BF;double y_out = M_BF * (Rz_BF * p.x + p.y - Rx_BF * p.z) + Dy_BF;double z_out = M_BF * (-Ry_BF * p.x + Rx_BF * p.y + p.z) + Dz_BF;p.x = x_out;p.y = y_out;p.z = z_out;}}

Java 七参数计算相关推荐

  1. 三参数或七参数计算工具使用帮助

    三参数或七参数计算工具使用帮助 由于在我们国家大多使用的是西安80.北京54甚至是各地的地方坐标系.    国家政策的原因,在制定这些坐标系的时候就加入了保密参数(3参数或者7参数)对地理坐标加偏(有 ...

  2. 【转载】根据已知点通过COORD七参数计算

    感谢欧特_Glodon 原文链接:https://blog.csdn.net/m0_37251750/article/details/99941276 参考致谢:微信公众号 GIS前言 问题:同一个点 ...

  3. COORD七参数计算步骤

    传统测绘领域(包括OGC标准的GeoJSON里面,都是定义纬度在前,经度在后,原因是纬度的英文单词是latitude,简写为LAT:而经度是longitude,简写为LON--字母排序,你懂的) 1. ...

  4. java 多线程统计质数,Java 七 多线程计算某个范围内的质数

    Java 7 多线程计算某个范围内的质数 不多说了,看代码 通用类 package java7.concurrency.math; /** * This class generates prime n ...

  5. 【坐标转换】四参数和七参数计算,并正向转换坐标(附完整源代码地址)

    实际项目中,经常遇到到不同坐标系之间变换的需求,比如西安80转wgs84,再转成百度坐标用于web显示.但网上只有不同椭球基准坐标系之间转换的片段资料或代码,本文将阐述坐标变换流程各环节的核心代码,如 ...

  6. GPS七参数计算工具

    坐标转换问题

  7. 地图旋转_如何使用万能地图下载器计算七参数

    1. 概述 在测绘行业里,坐标转换始终是饶不开的问题,经常会遇到,而坐标转换有相同椭球之间的转换,也有不同椭球之间的转换.如果是不同的椭球体之间的转换,就需要用到七参数,七参数可以通过控制点计算得到, ...

  8. 计算七参数,原来是这么操作的,一学就会!

    1. 概述 在测绘行业里,坐标转换始终是饶不开的问题,经常会遇到,而坐标转换有相同椭球之间的转换,也有不同椭球之间的转换.如果是不同的椭球体之间的转换,就需要用到七参数,七参数可以通过控制点计算得到, ...

  9. 七参数对不同坐标系统的转换

    三参数法和七参数法均应用于空间直角坐标系的转换. 三参数坐标转换公式在假设两坐标系间各坐标轴相互平行,轴系间不存在欧勒角的条件下得出的. [七参数]法: 如上图:两个空间直角坐标系分别为O1-X1Y1 ...

最新文章

  1. VINS-mono详细解读与实现
  2. 如何用计算机声卡,外置声卡怎么连接电脑
  3. big endian and little endian
  4. 在PC机上熟悉常用网络命令
  5. CommandLineRunner 和 ApplicationRunner 的区别
  6. Windows 7 又惹祸了!
  7. python 求和并排序_Python堆排序原理与实现方法详解
  8. fifo算法_前端进阶算法6:一看就懂的队列及配套算法题
  9. 使用Dom4j对XML文档创建与解析
  10. IntelliJ IDEA创建和配置Maven项目并运行
  11. 我所认识的EXT2(二)
  12. Matlab科研绘图颜色补充(特别篇)—51种中国传统颜色
  13. 研发岗位OKR的设计与激励 - 管理角度(附部分岗位样例)
  14. 中国机读目录格式(CNMARC)
  15. 用python制作动态二维码印刷价格_用一行Python代码制作动态二维码
  16. HJL-93/AY AC220V数字式交流三相电流继电器
  17. FusionCompute集群知识
  18. m3u8中ts文件无损批量合并与转换方法
  19. Linux的触屏软件安装,为 Linux 安装触摸屏 -电脑资料
  20. wait waitpid waitid wait3 wait4

热门文章

  1. 语义网络 语义网 词汇链 知识图谱辨析
  2. 上了年纪的酒店,如何“鸟枪换炮”?
  3. IDEA的插件,IDEA强大的插件库
  4. 微信公众号访问本地服务器的方法
  5. SIM7600X常用指令
  6. offline translator android app,PROMT Offline Translator English Pack
  7. 如何做一个能赚钱的技术公众号?
  8. 猫小胖服务器位置,最终幻想14新增猫小胖大区拆分陆行鸟大区-最终幻想14国服大区调整计划公布!-Appfound...
  9. 用jsp实现文件的下载(download.jsp)
  10. 微信小程序校园生活小助手+后台管理系统前后分离VUE