转换WGS84纬度/经度为GGRS87

时间:2019-05-07 06:30:05

标签: java google-maps javafx

您好,我在JavaFX应用程序中使用GMapsFX。我从Google Maps开始使用API​​获得经纬度,但是我也希望GGRS87

在希腊语中称为EGSA87。我已经搜索了所有内容。Geotoolsproj4j的库中可能有一个解决方案,但我对Java的了解并不多,特别是我找不到像这样的大型库中的解决方案那些。

我想要一些数学计算类型或库来解决我的问题。没有一些网站可以进行计算,我自己发现了很多网站。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用GDAL库,但是它的设置实际上非常复杂。您将必须在系统上安装GDAL(它在Debian软件包中),然后为其构建Java JNI绑定[1]。 [2]在使其正常工作中也非常有用。

然后,您可以使用Java GDAL库:

<dependency>
    <groupId>org.gdal</groupId>
    <artifactId>gdal</artifactId>
</dependency>

并执行以下操作:

final SpatialReference source = new SpatialReference();
source.ImportFromEPSG(4326); // EPSG code for WGS84, see www.epsg.io
final SpatialReference target = new SpatialReference();
target.ImportFromEPSG(4121); // EPSG code for GGRS87, see www.epsg.io
this.coordinateTransform = CoordinateTransformation.CreateCoordinateTransformation(source, target);
final Geometry geometry = ogr.CreateGeometryFromWkt(String.format("POINT (%f %f)", longitude, latitude));
geometry.Transform(coordinateTransform);
final double ggrsX = geometry.GetX();
final double ggrsY = geometry.GetY();