2000坐标系高程与85高程转换_收藏|地图投影系列介绍(二)——地理坐标系

3、地理坐标系

地球的形状与大小确定之后,还必须确定椭球体与大地水准面的相对关系,这项工作称为椭球定位与定向。与大地水准面符合得最好的一个地球椭球体,称为参考椭球体,是地球形体三级逼近。

1302ac15a77b63048af37c73c9953271.png

说到这里,我们需要对这几个词汇做区分:

Ø 球体:小比例尺,视作球体。

Ø 椭球体/旋转椭球体:大比例尺,两个概念不区分。

Ø 地球椭球体:限地球椭球体模型。

Ø 参考椭球体:定位相关,与局部或全局大地水准面最为吻合的椭球体模型。

3.1 大地基准面

大地基准面是利用特定椭球体对特定地区地球表面的逼近。ArcGIS中,基准面用于定义旋转椭球体相对于地心的位置。大地基准面分为地心基准面、区域基准面。

0f0a19adcb86e74e3982363de46eb278.png

Ø 地心基准面:由卫星数据得到,使用地球的质心作为原点,使用最广泛的是 WGS 1984。

Ø 区域基准面:特定区域内与地球表面吻合,大地原点是参考椭球与大地水准面相切的点,例如Beijing54、Xian80。

每个国家或地区均有各自的大地基准面。我们通常称谓的Beijing54、Xian80坐标系实际上指的是我国的两个大地基准面。相对同一地理位置,不同的大地基准面,它们的经纬度坐标是有差异的。

椭球体与大地基准面之间的关系是一对多的关系。因为基准面是在椭球体的基础上建立的,但椭球体不能代表基准面,同样的椭球体能定义不同的基准面。

在目前的GIS商用软件中,大地基准面都通过当地基准面向WGS84的转换7参数来定义,即: – 三个平移参数ΔX、ΔY、ΔZ表示两坐标原点的平移值。 – 三个旋转参数εx、εy、εz表示当地坐标系旋转至与地心坐标系平行时,分别绕Xt、Yt、Zt的旋转角。 – 最后是比例校正因子,用于调整椭球大小。

Beijing54、Xian80相对WGS84的转换参数至今也没有公开,实际工作中可利用工作区内已知的北京54或西安80坐标控制点进行与WGS84坐标值的转

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本软件是“测量计算工具包软件”的全面升级版。升级后的软件强化了坐标转换的功能,精简了其他不大使用的功能,软件名称更改为“坐标转换”,2013是全面升级后的第一个版本。 为适应国家测绘局地理信息办公室《2000国家大地坐标系推广使用技术指南》(以下简称《指南》)和《大地测量控制点坐标转换技术规程》(以下简称《规程》)的要求,坐标转换2013除保留原有的布尔沙模型和维四参数模型外,增加了三维七参数、维七参数、三维四参数和多项式拟合模型。另外,在转换参数的表达形式上也进行了调正,将“尺度比”改为“尺度变化”,与《指南》和《规程》保持一致。 升级后的坐标转换软件对程序界面和代码也进行了优化,参数的数值表示方式由固定宽度改为科学表示方式,使得其计算精度更高。 升级前的“椭球间的坐标转换”对应于升级后的“布尔沙模型”,升级前的“多公共点相似变换”对应于升级后的“维四参数模型”。这两种模型升级前的转换参数完全可以用于升级后的软件,仅需将将“尺度比”换算为“尺度变化”即可,换算公式为:尺度变化D=尺度比K-1。 如果用户拥有转换区域的公共点(《指南》和《规程》叫“重合点”)的话,建议用升级后的软件重新计算转换参数。 必须说明的是,不同的转换模型,转换参数是不能互换的。 本软件的所有转换模型的计算公式都来源于《指南》和《规程》,仅对“多项式拟合”公式的表达形式进行了格式上的统一。 坐标转换2014版增加了GPS高程拟合和墨卡托投影正反算转换
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
CGCS2000坐标系和WGS84坐标系都是大地坐标系,它们之间的转换可以使用数学公式进行计算。以下是Java代码实现CGCS2000坐标系与WGS84坐标系的相互投影转换: ```java public class CoordinateTransformation { private static final double a = 6378137.0; // 长轴半径 private static final double b = 6356752.3142; // 短轴半径 private static final double f = 1 / 298.257222101; // 扁率 private static final double e2 = (a * a - b * b) / (a * a); // 第一偏心率平方 private static final double e12 = (a * a - b * b) / (b * b); // 第偏心率平方 /** * CGCS2000坐标系转WGS84坐标系 * * @param x CGCS2000坐标系X轴坐标 * @param y CGCS2000坐标系Y轴坐标 * @param z CGCS2000坐标系Z轴坐标 * @return WGS84坐标系经纬度和高程,数组下标0为经度,1为纬度,2为高程 */ public static double[] CGCS2000toWGS84(double x, double y, double z) { double delta_x = -146.415; double delta_y = 507.404; double delta_z = 681.686; double m = x - delta_x; double n = y - delta_y; double p = z - delta_z; double B0 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12)); double B1 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B0) * Math.sin(B0))); double B2 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B1) * Math.sin(B1))); double B3 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B2) * Math.sin(B2))); double B4 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B3) * Math.sin(B3))); double B5 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B4) * Math.sin(B4))); double B6 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B5) * Math.sin(B5))); double B7 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B6) * Math.sin(B6))); double B8 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B7) * Math.sin(B7))); double B9 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B8) * Math.sin(B8))); double B10 = Math.atan(p / Math.sqrt(m * m + n * n) * (1 - f + e12 * Math.sin(B9) * Math.sin(B9))); double N = a / Math.sqrt(1 - e2 * Math.sin(B10) * Math.sin(B10)); double H = Math.sqrt(m * m + n * n) / Math.cos(B10) - N; double L = Math.atan(n / m); if (m < 0) { L = L + Math.PI; } else if (m > 0 && n < 0) { L = L + 2 * Math.PI; } double lng = L * 180 / Math.PI; double lat = B10 * 180 / Math.PI; double alt = H; return new double[]{lng, lat, alt}; } /** * WGS84坐标系转CGCS2000坐标系 * * @param lng WGS84坐标系经度 * @param lat WGS84坐标系纬度 * @param alt WGS84坐标系高程 * @return CGCS2000坐标系X轴、Y轴、Z轴坐标,数组下标0为X轴坐标,1为Y轴坐标,2为Z轴坐标 */ public static double[] WGS84toCGCS2000(double lng, double lat, double alt) { double B = lat * Math.PI / 180.0; double L = lng * Math.PI / 180.0; double H = alt; double N = a / Math.sqrt(1 - e2 * Math.sin(B) * Math.sin(B)); double X = (N + H) * Math.cos(B) * Math.cos(L); double Y = (N + H) * Math.cos(B) * Math.sin(L); double Z = (N * (1 - e2) + H) * Math.sin(B); double delta_x = -146.415; double delta_y = 507.404; double delta_z = 681.686; X = X + delta_x; Y = Y + delta_y; Z = Z + delta_z; return new double[]{X, Y, Z}; } } ``` 其中,`CGCS2000toWGS84`方法实现CGCS2000坐标系转WGS84坐标系,输入参数为CGCS2000坐标系的X轴坐标、Y轴坐标和Z轴坐标,返回值为WGS84坐标系的经纬度和高程。`WGS84toCGCS2000`方法实现WGS84坐标系转CGCS2000坐标系,输入参数为WGS84坐标系的经度、纬度和高程,返回值为CGCS2000坐标系的X轴坐标、Y轴坐标和Z轴坐标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值