CGCS2000坐标系与其他坐标系间的差异和转换方法

CGCS2000坐标系与其他坐标系间的差异和转换方法

1954北京坐标系和1980西安坐标系是以天文大地网等经典测量技术为基础的局部坐标系。­

CGCS2000是以地球质量中心为原点的地心大地坐标系。地心大地坐标系可以满足大地测量、地球物理、天文、导航和航天应用以及经济、社会发展的广泛需求。­

其基本原则是:­

坐标系尽量对准ITRF(国际地球参考架);­

坐标系应由空间大地网在某参考历元的坐标和速度体现;­

参考椭球的定义参数选用半长轴、扁率、地球地心引力常数和地球角速度,其参数值采用IUGG或 IERS的采用值或推荐值。­

CGCS2000的定义和ITRS的定义一致。CGCS2000的实现的实质是使CGCS2000框架对准ITRF97。相对ITRF97,CGCS2000A的实现精度,对于水平坐标达到1CM量级。因此可以认为CGCS2000与ITRF97(ITRF2000和ITRF2005)在CM级水平上是一致的。但如果一点的CGCS2000坐标精度达不到CM级,此两个坐标系不可认为是一致的。­

CGCS2000的定义与WGS84实质一样。采用的参考椭球非常接近。扁率差异引起椭球面上的纬度和高度变化最大达0.1mm。当前测量精度范围内,可以忽略这点差异。可以说两者相容至cm级水平,单若一点的坐标精度达不到cm水平,则不认为CGCS2000和WGS84的坐标是相容的。­

CGCS2000和1954或1984坐标系,在定义和实现上有根本区别。局部坐标和地心坐标之间的变换是不不可避免的。坐标变换通过联合平差来实现,而一边通过一定变换模型来实现。当采用模型变换时,变换模型的选择应依据精度要求而定。对于高精度(好于0.5m)要求,可采用最小曲率法或其他方法的格网模型,对于中等精度(0.5~5m)要求,可采用七参数模型,对于低精度(5~10m)要求,可采用四参数或者三参数模型。­

摘自西安测绘研究所魏子卿的相关论文!­

CGCS2000国家大地坐标系­

2008年第2号­

­

根据《中华人民共和国测绘法》,经国务院批准,我国自2008年7月1日起,启用2000国家大地坐标系。现公告如下:­

­

一、2000国家大地坐标系是全球地心坐标系在我国的具体体现,其原点为包括海洋和大气的整个地球的质量中心。2000国家大地坐标系采用的地球椭球参数如下:­

­

长半轴 a=6378137m­

­

扁率f=1/298.257222101­

­

地心引力常数GM=3.986004418×1014m3s-2­

­

自转角速度ω=7.292115×10-5rad s-1­

­

二、2000国家大地坐标系与现行国家大地坐标系转换、衔接的过渡期为8年至10年。­

­

现有各类测绘成果,在过渡期内可沿用现行国家大地坐标系;2008年7月1日后新生产的各类测绘成果应采用2000国家大地坐标系。­

­

现有地理信息系统,在过渡期内应逐步转换到2000国家大地坐标系;2008年7月1日后新建设的地理信息系统应采用2000国家大地坐标系。­

­

三、国家测绘局负责启用2000国家大地坐标系工作的统一领导,制定2000国家大地坐标系转换实施方案,为各地方、各部门现有测绘成果坐标系转换提供技术支持和服务;负责完成国家级基础测绘成果向2000国家大地坐标系转换,并向社会提供使用。国务院有关部门按照国务院规定的职责分工,负责本部门启用2000国家大地坐标系工作的组织实施和本部门测绘成果的转换。­

­

四、县级以上地方人民政府测绘行政主管部门,负责本地区启用2000国家大地坐标系工作的组织实施和监督管理,提供坐标系转换技术支持和服务,完成本级基础测绘成果向2000国家大地坐标系的转换,并向社会提供使用。­

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值