package com.sangeng;
import org.locationtech.proj4j.CRSFactory;
import org.locationtech.proj4j.CoordinateReferenceSystem;
import org.locationtech.proj4j.CoordinateTransform;
import org.locationtech.proj4j.CoordinateTransformFactory;
import org.locationtech.proj4j.ProjCoordinate;
import org.locationtech.proj4j.io.Proj4FileReader;
import java.io.IOException;
public class WGS84To4543 {
public static void main(String[] args) {
transform(101.60205056705729,26.5407382601306,1709.319362316199);
}
public static void transform(double x, double y, double z) {
Proj4FileReader proj4FileReader = new Proj4FileReader();
String[] paramStr = new String[0];
try {
paramStr = proj4FileReader.readParametersFromFile("epsg","4543");
} catch (IOException e) {
e.printStackTrace();
}
CRSFactory targetFactory = new CRSFactory();
//目标坐标系统
CoordinateReferenceSystem target = targetFactory.createFromParameters("4543", paramStr);
//源坐标系统
String wgs84_param = "+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degress";
CoordinateReferenceSystem wgs84 = targetFactory.createFromParameters("WGS84", wgs84_param);
CoordinateTransform transform;
CoordinateTransformFactory ctf = new CoordinateTransformFactory();
transform = ctf.createTransform(wgs84, target);
if (transform != null) {
ProjCoordinate projCoordinate = new ProjCoordinate(x, y);
System.out.println(projCoordinate);
transform.transform(projCoordinate, projCoordinate);
System.out.println(projCoordinate);
}
}
}
要导入pom坐标
<dependency>
<groupId>org.locationtech.proj4j</groupId>
<artifactId>proj4j</artifactId>
<version>1.1.1</version>
</dependency>