public static Point WGS84ToCGS2000(double xCoordinates, double yCoordinates)//参数 经度,纬度{// 数值过低可能是因为行政区代码错误导致的if (xCoordinates <= 0.0000001 || yCoordinates <= 0.0000001) {return null;}int ProjNo = 0;Point point = new Point(xCoordinates, yCoordinates);if (CheckIsWGS84Coordinates(xCoordinates, yCoordinates)) {point = Wgs84ToCgs2000(point, ProjNo);} else {if (!String.valueOf(point.getX()).startsWith(String.valueOf(ProjNo))) {//point = CoordinateTrans.Xian80ToWgs84(point, null);//point = ShapeAreaHelper.TransCoordinatesFrom84To2000(point, ProjNo);}}return point;}/*** 84经纬度坐标转2000平面坐标* @param sourcePoint* @param ProjNo* @return*/public static Point Wgs84ToCgs2000(Point sourcePoint, int ProjNo) {if (sourcePoint == null) {//throw new Exception("sourcePoint");}Point targetPoint = GaussProjCal(sourcePoint, ProjNo);return targetPoint;}/*** 高斯投影正算* @param sourcePoint* @param ProjNo* @return*/public static Point GaussProjCal(Point sourcePoint, int ProjNo) {Point point = GaussProjCal(sourcePoint.getX(), sourcePoint.getY(), EarthParam.CGS2000.A, EarthParam.CGS2000.F, ProjNo);return point;}private static Point GaussProjCal(double longitude, double latitude, double a, double f, int ProjNo) {//int ProjNo = 0;int ZoneWide;   带宽double longitude1, latitude1, longitude0, latitude0, X0, Y0, xval, yval;double e2, ee, NN, T, C, A, M, iPI;iPI = Math.PI / 180;   3.1415926535898/180.0;ZoneWide = 3;     3度带宽//a = 6378245.0; f = 1.0 / 298.3;      //54年北京坐标系参数//a=6378140.0;   f=1/298.257;      //80年西安坐标系参数//a=6378137m;f=1/298.257223563;//WGS-84坐标系if (ProjNo == 0) {ProjNo = (int) Math.round(longitude / ZoneWide);}longitude0 = ProjNo * ZoneWide;longitude0 = longitude0 * iPI;latitude0 = 0;//经度转换为弧度longitude1 = longitude * iPI;//纬度转换为弧度latitude1 = latitude * iPI;e2 = 2 * f - f * f;ee = e2 * (1.0 - e2);NN = a / Math.sqrt(1.0 - e2 * Math.sin(latitude1) * Math.sin(latitude1));T = Math.tan(latitude1) * Math.tan(latitude1);C = ee * Math.cos(latitude1) * Math.cos(latitude1);A = (longitude1 - longitude0) * Math.cos(latitude1);M = a * ((1 - e2 / 4 - 3 * e2 * e2 / 64 - 5 * e2 * e2 * e2 / 256) * latitude1 - (3 * e2 / 8 + 3 * e2 * e2 / 32 + 45 * e2 * e2 * e2 / 1024) * Math.sin(2 * latitude1)+ (15 * e2 * e2 / 256 + 45 * e2 * e2 * e2 / 1024) * Math.sin(4 * latitude1) - (35 * e2 * e2 * e2 / 3072) * Math.sin(6 * latitude1));xval = NN * (A + (1 - T + C) * A * A * A / 6 + (5 - 18 * T + T * T + 72 * C - 58 * ee) * A * A * A * A * A / 120);yval = M + NN * Math.tan(latitude1) * (A * A / 2 + (5 - T + 9 * C + 4 * C * C) * A * A * A * A / 24+ (61 - 58 * T + T * T + 600 * C - 330 * ee) * A * A * A * A * A * A / 720);X0 = 1000000L * (ProjNo) + 500000L;Y0 = 0;xval = xval + X0;yval = yval + Y0;return new Point(xval, yval);}/*** 判断是否wgs84坐标* @param xCoordinates* @param yCoordinates* @return*/public static boolean CheckIsWGS84Coordinates(double xCoordinates, double yCoordinates) {boolean res = false;if (xCoordinates < 360 && xCoordinates != 0 && yCoordinates < 360 && yCoordinates != 0) {res = true;}return res;}/*** 保留三位小数* @param para* @return*/public double getBigDecimal(double para) {BigDecimal b = new BigDecimal(para);//3 为保留小数位数 四舍五入double pi1 = b.setScale(3, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();return pi1;}/*** 保留三位小数* 测试方法* @return*/@Testvoid test4() {/*String path = "E:\\dev\\cgdb\\CompressedPackage\\DB\\20220331154011253\\420322郧西县\\1716641\\(420322)郧西县_20220331154011253.db";//DBUtil.setConnection(path);Integer integer = DBUtil.selectTBCount(path);System.out.println(integer);*/Point point = WGS84ToCGS2000(111.591111974096, 32.3265852655767);double bigDecimal = getBigDecimal(point.getX());double bigDecimal1 = getBigDecimal(point.getY());System.out.println(bigDecimal);System.out.println(bigDecimal1);System.out.println("X:" + point.getX() + "      Y:" + point.getY());}
public class EarthParam {/*** 长轴 eg:6378137*///private double A;/*** 扁心率 eg:1 / 298.257223563*///private double F;public class CGS2000{/*** 精确 =*/public static final double A = 6378137;/*** 模糊 like*/public static final double F = 1.0 / 298.257222101;}public class WGS84{/*** 精确 =*/public static final double A = 6378137;/*** 模糊 like*/public static final double F = 1.0 / 298.257223563;}public class XIAN80{/*** 精确 =*/public static final double A = 6378140;/*** 模糊 like*/public static final double F = 1.0 / 298.25722101;}public class BJ54{/*** 精确 =*/public static final double A = 6378245.0;/*** 模糊 like*/public static final double F = 1.0 / 298.257;}

WGS84转CGS2000 国家大地坐标系转换相关推荐

  1. 2000坐标系xy坐标几位_2000国家大地坐标系转换演示及实践应用专题培训研讨班...

    各相关单位: 按照国务院关于推广使用2000国家大地坐标系(CGCS2000)的有关要求,自然资源部(原国土资源部.国家测绘地理信息局)已确定将全面使用2000国家大地坐标系. 为帮助相关从业人员及时 ...

  2. 使用Arcmap将WGS84坐标转换成国家大地坐标系2000

    1. 创建自定义地理(坐标)变换 ArcMap中打开ArcToolBox->数据管理工具->投影和变换->创建自定义地理(坐标)变换 打开对话框,选择"输出地理坐标系&qu ...

  3. WGS84坐标转换成国家大地坐标系2000

    1. 创建自定义地理(坐标)变换 ArcMap中打开ArcToolBox->数据管理工具->投影和变换->创建自定义地理(坐标)变换 打开对话框,选择"输出地理坐标系&qu ...

  4. 广州坐标系转换大地2000_珞珈德毅DEU2000坐标转换软件通过2000国家大地坐标系转换软件测评...

    1月31日,国家测绘产品质量检验测试中心公示2000国家大地坐标系转换软件测评结果,武汉珞珈德毅科技股份有限公司德毅智慧®DEU2000®坐标转换软件从五十多家测评单位中脱颖而出,位列公示名单第一位, ...

  5. WGS84坐标系和CGS2000国家坐标系统转换

    两种坐标的详细定义略去不表,只谈谈其相互转换问题. 在84坐标时代,其与wgs84坐标的差别还是较大的.到了cgs2000时代,查阅相关文献可知,两者之间的差别微乎其微.鉴于在坐标系定义和实现上的比较 ...

  6. 关于印发《2000国家大地坐标系推广使用技术指南》和《大地测量控制点坐标转换技术规程》的函

    http://www.sbsm.gov.cn/article/tzgg/201307/20130700128528.shtml 关于印发<2000国家大地坐标系推广使用技术指南>和< ...

  7. GIS数据格式坐标转换(地球坐标WGS84、GCJ-02、火星坐标、百度坐标BD-09、国家大地坐标系CGCS2000)

    文章目录 前言 一.坐标系 1.地球坐标 (WGS84) 2.国测局坐标系(GCJ-02.火星坐标系) 3.百度坐标(BD-09) 4.国家大地2000坐标系(CGCS2000) 二.百度坐标系(BD ...

  8. 2000国家大地坐标系

    http://blog.geohey.com/geohey-supports-cgcs2000/ 2019年1月1日起,自然资源部将统一使用2000国家大地坐标系,并停止提供北京54坐标系和西安80坐 ...

  9. 《海洋测绘》:从地方坐标系到2000国家大地坐标系的转换方法

    从地方坐标系到2000国家大地坐标系的转换方法 https://mp.weixin.qq.com/s?__biz=MzA5NDUyNzk3Mw==&mid=2651689450&idx ...

最新文章

  1. SAP变式配置的完整指南(中英文双语版)
  2. hadoop28---netty传对象
  3. blp模型 上读下写_Java高并发编程(三):Java内存模型
  4. java断言——Assertion
  5. 二叉树后序遍历的四种方法
  6. android实用代码
  7. win7系统去除图标箭头的方法
  8. 希望这些建议对你有帮助
  9. 机器学习、深度学习概念术语的理解
  10. 浅析jQuery源码
  11. 怎么把HTML转换成swf用迅雷,什么工具能把MP4格式转换成SWF并不降低画质
  12. 物联网感知-分布式光纤振动传感主机实现基本原理
  13. android带杜比音效的播放器,杜比音乐播放器(杜比音效)
  14. 【Mockplus教程】账号和购买
  15. Most of the disks failed
  16. 187. 导弹防御系统
  17. 删除hdfs上的内容报错:rm: Cannot delete /wxcm/ Name node is in safe mode.
  18. 蒜头君的藏书(STL—map)
  19. FCES2019 panel5:北大、南大、浙大的人工智能课程是如何建设的?
  20. uni-app实现PDF预览功能(避坑看这)

热门文章

  1. 3|物联网控制|计算机控制-刘川来胡乃平版|第4章:过程通道与人机接口-4.1数字量输入输出通道接口|课堂笔记|ppt
  2. 腾讯2020iOS面试题
  3. CET-4、CET-6复习
  4. dell r630 配置raid_DELL服务器硬件 配置RAID磁盘阵列 iDRAC配置
  5. RT-Thread ——RTC配置
  6. electron内核版本引起的 笔记本And台式电脑的视图兼容性问题(不是浏览器兼容),全网首例!无厘头的问题
  7. C++类的虚函数表和虚函数在内存中的位置
  8. burpsuite安装的问题
  9. Markdown图片本地化
  10. KEIL 5下载程序到STM32F103ZET6芯片时的相关设置