gpt4 book ai didi

java 转换投影 EPSG :900913 to EPSG:4326

转载 作者:行者123 更新时间:2023-12-03 20:26:35 26 4
gpt4 key购买 nike

在开放层我们可以简单地将 EPSG:900913 转换为 EPSG:4326
我正在寻找可以做到这一点的 java 库。
在这里我发现了这个, http://www.jhlabs.com/java/maps/proj/index.html

但是文档是用c++写的
我不知道如何使用它。


如果有人知道,
请发布一个简单的代码

最佳答案

我知道这是将近 8 年前的事了,但这也许可以帮助到另一位勇敢的旅行者。

我们不得不放弃 GeoTools,因为它是 LGPL,这是我们的法律人士不允许的。

我刚刚移动了我们的代码以使用 proj4j ( https://trac.osgeo.org/proj4j/ )。它看起来不像是在积极开发,但它可以满足我们的简单需求。此外,许可证是 Apache 2.0,更加宽松。

它可以通过 Maven 获得,因此很容易:http://search.maven.org/#artifactdetails%7Corg.osgeo%7Cproj4j%7C0.1.0%7Cjar .

它不直接支持 EPSG:900913,因为它不是真正的官方标准。它确实支持 EPSG:3857,这是一回事。

这是一个片段,可以满足您的需求:

public Point2D.Double transform(Point2D.Double point, String sourceCRS, String targetCRS) {
Point2D.Double destPosition = new Point2D.Double();

CRSFactory factory = new CRSFactory();
CoordinateReferenceSystem srcCrs = factory.createFromName(sourceCRS); // Use "EPSG:3857" here instead of 900913.
CoordinateReferenceSystem destCrs = factory.createFromName(targetCRS); // Use "EPSG:4326 here.
CoordinateTransform transform = new CoordinateTransformFactory().createTransform(srcCrs, destCrs);

ProjCoordinate srcCoord = new ProjCoordinate(point.getX(), point.getY());
ProjCoordinate destCoord = new ProjCoordinate();
transform.transform(srcCoord, destCoord);
destPosition.setLocation(destCoord.x, destCoord.y);

return destPosition;
}

关于java 转换投影 EPSG :900913 to EPSG:4326,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com