【问题标题】:Convert WGS84 lat/long to GGRS87将 WGS84 纬度/经度转换为 GGRS87
【发布时间】:2019-05-07 06:30:04
【问题描述】:

您好,我正在为我的 JavaFX 应用程序使用 GMapsFX。我使用 API 从Google Maps 获得经度和纬度,但我也想获得GGRS87

在希腊语中称为EGSA87。我已经搜索过,到目前为止一无所获。 Geotoolsproj4j 的库上可能有解决方案,但我对 java 的了解不是很好,尤其是在像这样的大型库中找不到解决方案。

我找到了很多可以进行计算的网站,但我如何自己进行数学计算?甚至是一个图书馆来解决这个问题?

【问题讨论】:

    标签: java google-maps javafx


    【解决方案1】:

    您可以使用 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();
    

    【讨论】:

    • 你好先生,请问这是否与java桌面应用程序兼容?因为我相信第一个文本区域让我想起了android应用程序
    • 是的。第一个 sn-p 是一个 Maven 依赖声明。如果您不使用 Maven,则只需下载 GDAL jar 文件并确保在运行应用程序时它在类路径中可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多