【问题标题】:How to transform projection EPSG:3857 to EPSG:4326 in java (Geospatial)如何在java中将投影EPSG:3857转换为EPSG:4326(地理空间)
【发布时间】:2019-07-03 09:29:14
【问题描述】:

有没有办法在 java 中将 EPSG:3857 投影转换为 EPSG:4326?我正在使用 esri java sdk。我浏览了 esri skd 文档,但找不到将 EPSG:3857 转换为 EPSG:4326 的方法。有办法吗?

我有一个这样的 webMercator:Point property = new Point(1.7040237624799997e7,-3099509.4953500014, SpatialReferences.getWebMercator());

还有这样的 WSG84 Point point1 = new Point(153.089361, -26.802295, SpatialReferences.getWgs84());

我需要合并它们,因为这些点具有不同的空间参考,我无法显示地图属性。

【问题讨论】:

    标签: java geospatial esri map-projections epsg


    【解决方案1】:

    我假设您正在使用 ArcObjects SDK for Java?那么下面的代码应该可以工作,因为您的 Point 类正在根据 esri java doc 实现 IGeometry 接口

    https://desktop.arcgis.com/en/arcobjects/latest/java/api/arcobjects/com/esri/arcgis/geometry/IGeometry.html

    Point property = new Point(1.7040237624799997e7,-3099509.4953500014, 
                               spatialReferences.getWebMercator());
    Point reprojected = property.project(SpatialReferences.getWgs84());
    

    因为您的 Point 构造函数看起来您正在使用较新的 Esri SDK 之一,例如 ArcGIS Pro SDK 或 Runtime SDK,所以我也在为它们添加解决方案:

    Point originalPoint = new Point(1.7040237624799997e7,-3099509.4953500014, 
                              spatialReferences.getWebMercator());
    Point projectedPoint = (Point) GeometryEngine.project(originalPoint, 
                               SpatialReference.create(4326));
    

    根据 https://developers.arcgis.com/java/latest/sample-code/project.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-12
      • 2022-01-08
      • 2016-09-28
      • 1970-01-01
      • 2019-06-04
      • 2020-11-28
      • 1970-01-01
      • 2017-10-14
      相关资源
      最近更新 更多