以下的方法可以实现CGCS2000大地坐标系XY值转化为对应经纬度信息,

注意输入的XY值与给定的值相反,则参数X为已知的Y,参数Y为已知的X。

得出的结果为 [纬度,经度],不要应用错误。

L0参数为中央子午线的经线值,应用方法前需要确定L0的值,否则得出的值会有很大的偏差。


public static double [] xytolatlon(double X, double Y ,double L0) {double lat ,lon;Y-=500000;double []  result  = new double[2];double iPI = 0.0174532925199433;//pi/180double a = 6378137.0; //长半轴 mdouble b = 6356752.31414; //短半轴 mdouble f = 1/298.257222101;//扁率 a-b/adouble e = 0.0818191910428; //第一偏心率 Math.sqrt(5)double ee = Math.sqrt(a*a-b*b)/b; //第二偏心率double bf = 0; //底点纬度double a0 = 1+(3*e*e/4) + (45*e*e*e*e/64) + (175*e*e*e*e*e*e/256) + (11025*e*e*e*e*e*e*e*e/16384) + (43659*e*e*e*e*e*e*e*e*e*e/65536);double b0 = X/(a*(1-e*e)*a0);double c1 = 3*e*e/8 +3*e*e*e*e/16 + 213*e*e*e*e*e*e/2048 + 255*e*e*e*e*e*e*e*e/4096;double c2 = 21*e*e*e*e/256 + 21*e*e*e*e*e*e/256 + 533*e*e*e*e*e*e*e*e/8192;double c3 = 151*e*e*e*e*e*e*e*e/6144 + 151*e*e*e*e*e*e*e*e/4096;double c4 = 1097*e*e*e*e*e*e*e*e/131072;bf = b0 + c1*Math.sin(2*b0) + c2*Math.sin(4*b0) +c3*Math.sin(6*b0) + c4*Math.sin(8*b0); // bf =b0+c1*sin2b0 + c2*sin4b0 + c3*sin6b0 +c4*sin8b0 +...double tf = Math.tan(bf);double n2 = ee*ee*Math.cos(bf)*Math.cos(bf); //第二偏心率平方成bf余弦平方double c = a*a/b;double v=Math.sqrt(1+ ee*ee*Math.cos(bf)*Math.cos(bf));double mf = c/(v*v*v); //子午圈半径double nf = c/v;//卯酉圈半径//纬度计算lat=bf-(tf/(2*mf)*Y)*(Y/nf) * (1-1/12*(5+3*tf*tf+n2-9*n2*tf*tf)*(Y*Y/(nf*nf))+1/360*(61+90*tf*tf+45*tf*tf*tf*tf)*(Y*Y*Y*Y/(nf*nf*nf*nf)));//经度偏差lon=1/(nf*Math.cos(bf))*Y -(1/(6*nf*nf*nf*Math.cos(bf)))*(1+2*tf*tf +n2)*Y*Y*Y + (1/(120*nf*nf*nf*nf*nf*Math.cos(bf)))*(5+28*tf*tf+24*tf*tf*tf*tf)*Y*Y*Y*Y*Y;result[0] =retain6(lat/iPI);result[1] =retain6(L0+lon/iPI);//System.out.println(result[1]+","+result[0]);return result;}
private static double retain6(double num) {String result = String.format("%.6f", num);return Double.valueOf(result);}

java代码实现CGCS2000大地坐标系XY值转化为对应经纬度相关推荐

  1. java content-length_为什么Content-Length HTTP头字段使用的值不是Java代码中给出的值?...

    我有一段 Java代码将字节数组传输到HTTP服务器: HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ...

  2. Hadoop实例之Java代码实现利用MapReduce求π值

    需求:假如有一个边长为1的正方形.以正方形的一个端点为圆心,以1为半径,画一个圆弧,于是在正方形内就有了一个直角扇形.在正方形里随机生成若干的点,则有些点是在扇形内,有些点是在扇形外.正方形的面积是1 ...

  3. java代码实现十进制到二进制的转化

    前言 十进制与二进制之间的转化是小学就学过的内容,但是我相信还是有一部分同学忘了如何"反向求余",代码用python和matlab等编程语言特别好实现,对于刚接触java语言的同学 ...

  4. 为什么数据库可以查询到值,java代码里面返回为null值

    为什么我的查询用#不行要改成$ 一直查询不到我需要的值 改成$可以查询 #{} 这种是防止注入 输入进来的数据都会带有' '引号 $这种是不防止注入 你输入进来的数据怎么进来的就怎么放进去 不会自带引 ...

  5. js中变量和jsp中java代码中变量互相访问解决方案

    1.js变量获取jsp页面中java代码的变量值.  方法:var JS变量名 = <%=JAVA变量名 %>   2.java代码获取js变量的值.  说明:在JSP中:Java部分是在 ...

  6. js变量和java变量相等,js中变量和jsp中java代码中变量互相访问解决方案

    1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = 我们常常会将js文件和jsp文件分开写,在js文件中,上面的方法似乎不管用了. 也可以通过变通的方法来解决: a.js ...

  7. 【运筹优化】AFSA人工鱼群算法求解无约束多元函数最值(Java代码实现)

    文章目录 前言 优化目标 求解结果 迭代结果可视化 算法流程 Java代码 可视化代码 前言 本文以求解二元函数最小值为例,如果需要求解多元函数,只需要修改以下变量即可: varNum:变量维度数 u ...

  8. 【智能算法】FA萤火虫算法求解无约束多元函数最值(Java代码实现)

    文章目录 前言 优化目标 求解结果 搜索过程可视化 Java代码 可视化代码 前言 本文以求解二元函数最小值为例,如果需要求解多元函数,只需要修改以下变量即可: varNum:变量维度数 ub和lb: ...

  9. 【运筹优化】SMO蜘蛛猴优化算法求解无约束多元函数最值(Java代码实现)

    文章目录 前言 优化目标 优化结果 迭代过程可视化 Java代码 可视化代码 优化流程(图太大了,所以放最后...) 前言 本文以求解二元函数最小值为例,如果需要求解多元函数,只需要修改以下变量即可: ...

  10. 【运筹优化】CSO蟑螂算法求解无约束多元函数最值(Java代码实现)

    文章目录 一.前言 二.优化目标 三.求解结果 四.迭代结果可视化 五.算法流程图 六.Java代码实现 6.1 算法部分代码 6.2 可视化部分代码 一.前言 本文以求解二元函数最小值为例,如果需要 ...

最新文章

  1. UA OPTI512R 傅立叶光学导论25 透镜成像中光源与像的光强关系
  2. 【微信小程序】wx:if
  3. Groovy 设计模式 -- 借贷
  4. java泛型学习二:解惑通配符
  5. Android开发之Java的IO流读写的十种方法
  6. mysql explain预估剖析
  7. 也许,真的有2012
  8. VMware ESXi 虚拟机硬盘格式:精简置备、厚置备延迟置零、厚置备置零
  9. 干货:科大讯飞最新语音识别系统和框架深度剖析
  10. Kali 安装 xmapp、DVWA
  11. 第1章 【蓦然回首】开篇引导【少年,奋斗吧】
  12. 服务器虚拟化的主要特点,网络虚拟化的七大特征
  13. 3269: 万水千山粽是情
  14. 万诤:同心同向同行,才算得上不负遇见
  15. python开发PC端桌面应用
  16. RAID 独立冗余磁盘阵列详解(RAID 0、RAID 1、RAID 5、RAID 10)
  17. 记录repast4py的前两个example——rndWalker和Rumer Agent
  18. 说说自己理解的web架构
  19. Linux项目自动化构建工具-make/Makefile的打字练习
  20. 2022-08-26 Unity视频播放4——全景视频

热门文章

  1. java中的异或运算
  2. python随机森林回归_机器学习:Python实现随机森林回归
  3. acwing-提高课
  4. R语言加载UCI糖尿病数据集、并启动Rattle GUI、调用party包中的ctree函数构建条件推理树模型、Rattle混淆矩阵、使用R自定义编写函数通过混淆矩阵计算特异度、敏感度、PPV、NPV
  5. Audition 如何录制电脑内部声音
  6. dex转java工具_安卓dex反编译工具(dex-translator)
  7. 读书笔记-------修炼之道互联网产品从设计到运营
  8. 2节串联锂电池充电管理芯片IC,5V,12V升降压解决方案
  9. 分享一个小软件fences(桌面管理软件)
  10. JavaWeb相关知识和技巧概括