wgs84转cgcs2000 java_CGCS2000坐标系与WGS84的相互投影转换
时间: 2023-07-29 10:07:03 浏览: 162
在Java中实现WGS84与CGCS2000坐标系的相互投影转换,可以使用Proj4J库来实现。以下是一个简单的示例代码:
首先,需要下载Proj4J库并将其添加到Java项目中。
然后,可以使用以下代码将WGS84坐标系的经纬度坐标转换为CGCS2000坐标系的平面坐标:
```
import org.osgeo.proj4j.CoordinateReferenceSystem;
import org.osgeo.proj4j.CRSFactory;
import org.osgeo.proj4j.ProjCoordinate;
public class WGS84toCGCS2000 {
public static void main(String[] args) {
// 定义WGS84坐标系
String wgs84Str = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
CRSFactory crsFactory = new CRSFactory();
CoordinateReferenceSystem wgs84 = crsFactory.createFromParameters("WGS84", wgs84Str);
// 定义CGCS2000坐标系
String cgcs2000Str = "+proj=utm +zone=50 +ellps=GRS80 +units=m +no_defs";
CoordinateReferenceSystem cgcs2000 = crsFactory.createFromParameters("CGCS2000", cgcs2000Str);
// 定义WGS84坐标点
ProjCoordinate wgs84Point = new ProjCoordinate(116.3975, 39.9085);
// 将WGS84坐标点转换为CGCS2000坐标系下的平面坐标
ProjCoordinate cgcs2000Point = new ProjCoordinate();
crsFactory.createFromCoordinateReferenceSystem(wgs84).getCoordinateOperationFactory()
.createOperation(wgs84, cgcs2000).getMathTransform().transform(wgs84Point, cgcs2000Point);
System.out.println(cgcs2000Point.x + " " + cgcs2000Point.y);
}
}
```
同样,可以使用以下代码将CGCS2000坐标系的平面坐标转换为WGS84坐标系的经纬度坐标:
```
import org.osgeo.proj4j.CoordinateReferenceSystem;
import org.osgeo.proj4j.CRSFactory;
import org.osgeo.proj4j.ProjCoordinate;
public class CGCS2000toWGS84 {
public static void main(String[] args) {
// 定义WGS84坐标系
String wgs84Str = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
CRSFactory crsFactory = new CRSFactory();
CoordinateReferenceSystem wgs84 = crsFactory.createFromParameters("WGS84", wgs84Str);
// 定义CGCS2000坐标系
String cgcs2000Str = "+proj=utm +zone=50 +ellps=GRS80 +units=m +no_defs";
CoordinateReferenceSystem cgcs2000 = crsFactory.createFromParameters("CGCS2000", cgcs2000Str);
// 定义CGCS2000坐标点
ProjCoordinate cgcs2000Point = new ProjCoordinate(397829.29, 4407529.65);
// 将CGCS2000坐标点转换为WGS84坐标系下的经纬度坐标
ProjCoordinate wgs84Point = new ProjCoordinate();
crsFactory.createFromCoordinateReferenceSystem(cgcs2000).getCoordinateOperationFactory()
.createOperation(cgcs2000, wgs84).getMathTransform().transform(cgcs2000Point, wgs84Point);
System.out.println(wgs84Point.x + " " + wgs84Point.y);
}
}
```