Как преобразовать проекцию EPSG: 3857 в EPSG: 4326 в Java (Geospatial) - PullRequest
0 голосов
/ 09 февраля 2019

Есть ли способ преобразовать проекцию EPSG: 3857 в EPSG: 4326 в Java?Я использую 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());

Мне нужно объединить ихи поскольку эти точки имеют разные пространственные привязки, я не могу отобразить свойство карты.

1 Ответ

0 голосов
/ 15 февраля 2019

Я предполагаю, что вы используете ArcObjects SDK для Java?Тогда следующий код должен работать, потому что ваш класс Point реализует интерфейс IGeometry в соответствии с esri java doc

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

...