地理信息 54经纬度坐标124.793263,46.26888194 转 54坐标
时间: 2023-08-02 15:09:38 浏览: 117
54坐标经纬度转换
5星 · 资源好评率100%
54坐标系是中国新的统一的大地坐标系,其投影方式是横轴为高斯-克吕格投影,纵轴为墨卡托投影。54坐标系是一种平面直角坐标系,以米为单位,与WGS84坐标系之间可以通过转换公式进行转换。下面是将WGS84坐标系中的经纬度坐标转换为54坐标系的Java代码示例:
```java
public class CoordinateTransform {
private static final double A = 6378137.0; // 长半轴
private static final double B = 6356752.3142; // 短半轴
private static final double L0 = 121.0; // 中央经线
private static double rad(double degree) {
return degree * Math.PI / 180.0;
}
public static double[] WGS84To54(double lng, double lat) {
double L = rad(lng);
double B = rad(lat);
double L0 = rad(CoordinateTransform.L0);
double e2 = 1 - (B / A) * (B / A);
double N = A / Math.sqrt(1 - e2 * Math.sin(B) * Math.sin(B));
double T = Math.tan(B) * Math.tan(B);
double C = e2 * Math.cos(B) * Math.cos(B);
double A1 = (L - L0) * Math.cos(B);
double A2 = (L - L0) * (L - L0) * Math.cos(B) * Math.cos(B) * Math.cos(B) * (1 - T + C) / 6.0;
double A3 = (L - L0) * (L - L0) * (L - L0) * Math.cos(B) * Math.cos(B) * Math.cos(B) * Math.cos(B) * (5 - 18 * T + T * T + 72 * C - 58 * e2) / 120.0;
double X = 1000000 + N * A1 + 500000 * Math.sin(B) * Math.cos(B) * (A2 + A3);
double Y = 1000000 + N * B * Math.cos(B) * (1 + (A1 * A1) / 2.0 + (1 - T + C) * (A2 * A2) / 24.0 + (5 - 4 * T + 14 * C + 13 * C * C - 28 * T * C) * (A3 * A3) / 720.0);
return new double[]{X, Y};
}
}
```
使用方法:
```java
double lng = 124.793263;
double lat = 46.26888194;
double[] xy = CoordinateTransform.WGS84To54(lng, lat);
System.out.println("54坐标系 X 坐标:" + xy[0]);
System.out.println("54坐标系 Y 坐标:" + xy[1]);
```
其中,`A` 和 `B` 分别为 WGS84 椭球体的长半轴和短半轴,`L0` 为中央经线经度,`e2` 为椭球体第一偏心率的平方,`N` 为子午线曲率半径,`T` 和 `C` 分别为一、二次纬度变形参数,`X` 和 `Y` 为计算得到的54坐标系的 X 和 Y 坐标。
阅读全文