-1

有没有办法在 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());

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

4

1 回答 1

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

于 2019-02-15T07:46:23.407 回答