Java 七参数计算
两个不同的三维空间直角坐标系之间转换时,通常使用七参数模型(数学方程组)。在该模型中有七个未知参数,即:
(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 七参数计算相关推荐
- 三参数或七参数计算工具使用帮助
三参数或七参数计算工具使用帮助 由于在我们国家大多使用的是西安80.北京54甚至是各地的地方坐标系. 国家政策的原因,在制定这些坐标系的时候就加入了保密参数(3参数或者7参数)对地理坐标加偏(有 ...
- 【转载】根据已知点通过COORD七参数计算
感谢欧特_Glodon 原文链接:https://blog.csdn.net/m0_37251750/article/details/99941276 参考致谢:微信公众号 GIS前言 问题:同一个点 ...
- COORD七参数计算步骤
传统测绘领域(包括OGC标准的GeoJSON里面,都是定义纬度在前,经度在后,原因是纬度的英文单词是latitude,简写为LAT:而经度是longitude,简写为LON--字母排序,你懂的) 1. ...
- java 多线程统计质数,Java 七 多线程计算某个范围内的质数
Java 7 多线程计算某个范围内的质数 不多说了,看代码 通用类 package java7.concurrency.math; /** * This class generates prime n ...
- 【坐标转换】四参数和七参数计算,并正向转换坐标(附完整源代码地址)
实际项目中,经常遇到到不同坐标系之间变换的需求,比如西安80转wgs84,再转成百度坐标用于web显示.但网上只有不同椭球基准坐标系之间转换的片段资料或代码,本文将阐述坐标变换流程各环节的核心代码,如 ...
- GPS七参数计算工具
坐标转换问题
- 地图旋转_如何使用万能地图下载器计算七参数
1. 概述 在测绘行业里,坐标转换始终是饶不开的问题,经常会遇到,而坐标转换有相同椭球之间的转换,也有不同椭球之间的转换.如果是不同的椭球体之间的转换,就需要用到七参数,七参数可以通过控制点计算得到, ...
- 计算七参数,原来是这么操作的,一学就会!
1. 概述 在测绘行业里,坐标转换始终是饶不开的问题,经常会遇到,而坐标转换有相同椭球之间的转换,也有不同椭球之间的转换.如果是不同的椭球体之间的转换,就需要用到七参数,七参数可以通过控制点计算得到, ...
- 七参数对不同坐标系统的转换
三参数法和七参数法均应用于空间直角坐标系的转换. 三参数坐标转换公式在假设两坐标系间各坐标轴相互平行,轴系间不存在欧勒角的条件下得出的. [七参数]法: 如上图:两个空间直角坐标系分别为O1-X1Y1 ...
最新文章
- VINS-mono详细解读与实现
- 如何用计算机声卡,外置声卡怎么连接电脑
- big endian and little endian
- 在PC机上熟悉常用网络命令
- CommandLineRunner 和 ApplicationRunner 的区别
- Windows 7 又惹祸了!
- python 求和并排序_Python堆排序原理与实现方法详解
- fifo算法_前端进阶算法6:一看就懂的队列及配套算法题
- 使用Dom4j对XML文档创建与解析
- IntelliJ IDEA创建和配置Maven项目并运行
- 我所认识的EXT2(二)
- Matlab科研绘图颜色补充(特别篇)—51种中国传统颜色
- 研发岗位OKR的设计与激励 - 管理角度(附部分岗位样例)
- 中国机读目录格式(CNMARC)
- 用python制作动态二维码印刷价格_用一行Python代码制作动态二维码
- HJL-93/AY AC220V数字式交流三相电流继电器
- FusionCompute集群知识
- m3u8中ts文件无损批量合并与转换方法
- Linux的触屏软件安装,为 Linux 安装触摸屏 -电脑资料
- wait waitpid waitid wait3 wait4
热门文章
- 语义网络 语义网 词汇链 知识图谱辨析
- 上了年纪的酒店,如何“鸟枪换炮”?
- IDEA的插件,IDEA强大的插件库
- 微信公众号访问本地服务器的方法
- SIM7600X常用指令
- offline translator android app,PROMT Offline Translator English Pack
- 如何做一个能赚钱的技术公众号?
- 猫小胖服务器位置,最终幻想14新增猫小胖大区拆分陆行鸟大区-最终幻想14国服大区调整计划公布!-Appfound...
- 用jsp实现文件的下载(download.jsp)
- 微信小程序校园生活小助手+后台管理系统前后分离VUE