2000坐标系xy坐标几位_2000国家大地坐标系

2000

国家大地坐标系

一、起止时间

2008

4

月,

国务院批准自

2008

7

1

日起,

启用

2000

国家大地坐标系。

二、大地坐标系

CGCS2000

是(中国)

2000

国家大地坐标系的缩写,

该坐标

系是通过中国

GPS

连续运行基准站、

空间大地控制网以及天文

大地网与空间地网联合平差建立的地心大地坐标系统。

2000

(中

国)国家大地坐标系以

ITRF 97

参考框架为基准

,

参考框架历

元为

2000.0

,仍采用无潮汐系统。

表示方法:

大地坐标系,

是将地球模拟成一个规则的

椭球,以

大地经度(

L

)、大

地纬度(

B

)、大地高(

H

)

来表示地球表面物体的位置。

大地经度(

L

)

是通过该点的

大地子午面与起始大地子午

面(通过格林尼治天文台

子午面)

之间的夹角,

规定以

起始子午面起算,

向东由

0

°

180

°称为东经,向西由

0

°至

180

°称为西经。

大地

纬度(

B

)

是通过该点的法线与赤道面的夹角,规定由赤道面起

算,

由赤道面向北从

0

°至

90

°称为北纬,

向南从

0

°到

90

°称

为南纬。

其中著名的纬线“北回归线”

是太阳光线能够直射在地

球上最北的界线,

横穿于绿水青山的增城境内,

其大地纬度值约

为北纬

23

26

分。

大地高(

H

)

则是物体到椭球表面的高度。

(纬度,经度,高)

=

(

B,L,H

)

=

空间立体坐标(

X,Y,Z

)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java代码示例如下: ```java import org.apache.commons.math3.geometry.euclidean.threed.Vector3D; public class CoordinateConverter { private static final double a = 6378137; // 长半轴 private static final double b = 6356752.3142; // 短半轴 private static final double f = (a - b) / a; // 扁率 private static final double e1 = Math.sqrt(2 * f - f * f); // 第一偏心率 private static final double e2 = Math.sqrt((a * a - b * b) / (b * b)); // 第二偏心率 public static Vector3D convertXYToLatLon(double x, double y) { // 投影坐标转换为大地坐标 double Bf0 = x / a; double Nf0 = (Math.pow(a, 2) / b) / Math.sqrt(1 + Math.pow(e2, 2) * Math.pow(Math.cos(Bf0), 2)); double Mf0 = a * (1 - Math.pow(e1, 2)) / Math.pow(Math.sqrt(1 - Math.pow(e1, 2) * Math.pow(Math.sin(Bf0), 2)), 3); double nf = Math.sqrt(1 + Math.pow(e2, 2) * Math.pow(Math.cos(Bf0), 2)); double etaf = e2 * Math.cos(Bf0); double T1f = Math.pow(Math.tan(Bf0), 2); double C1f = Math.pow(e1, 2) * Math.pow(Math.cos(Bf0), 2); double R = a * (1 - Math.pow(e1, 2)) / Math.pow(Math.sqrt(1 - Math.pow(e1, 2) * Math.pow(Math.sin(Bf0), 2)), 2); double latitude = Bf0 - (Nf0 * Math.tan(Bf0) / Mf0) * (Math.pow(x, 2) / (2 * R)) + (Nf0 * Math.tan(Bf0) / (24 * Mf0 * Mf0 * Mf0)) * ((5 + 3 * T1f + 10 * C1f - 4 * C1f * C1f - 9 * etaf * etaf) * Math.pow(x, 4) / 24 - (61 + 90 * T1f + 298 * C1f + 45 * T1f * T1f - 252 * etaf * etaf - 3 * C1f * C1f) * Math.pow(x, 6) / 720); double longitude = (x / (nf * Mf0 * Math.cos(Bf0)) - (1 + 2 * T1f + C1f) * Math.pow(x, 3) / (6 * nf * nf * nf * Mf0 * Math.pow(Math.cos(Bf0), 3)) + (5 + 28 * T1f + 24 * T1f * T1f + 6 * C1f + 8 * etaf * etaf) * Math.pow(x, 5) / (120 * Math.pow(nf, 5) * Mf0 * Math.pow(Math.cos(Bf0), 5))) / Math.cos(Bf0); return new Vector3D(Math.toDegrees(latitude), Math.toDegrees(longitude), y); } public static void main(String[] args) { double x = 1000000; // x坐标 double y = 2000000; // y坐标 Vector3D latLon = convertXYToLatLon(x, y); System.out.printf("经度:%f, 纬度:%f, 高程:%f", latLon.getY(), latLon.getX(), latLon.getZ()); } } ``` 该代码实现了cgcs2000大地坐标系xy值转化为对应经纬度。在代码中,首先定义了大地坐标系相关参数,如长半轴、短半轴、扁率、偏心率等。然后通过投影坐标转换为大地坐标的公式,计算出经度、纬度和高程,并将结果返回。在main方法中,我们可以指定xy坐标,然后调用转换函数,将结果输出为经度、纬度和高程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值