【问题标题】:Java GeoTools - Getting CRS from SRIDJava GeoTools - 从 SRID 获取 CRS
【发布时间】:2014-06-21 11:38:54
【问题描述】:

我可能会混淆两件事,但我需要对我的多边形(距离、面积等)进行一些计算。使用 WKBReader,我得到了地理信息:

WKBReader wkbReader = new WKBReader();
byte[] a = results.getBytes(8);
Geometry geo = wkbReader.read(results.getBytes("st_asbinary"));

但我没有在 EPSG:4326 中得到它。我想使用 GeoTools 进行转换。如何从地理对象中获取 CRS? (看三个问号)

CoordinateReferenceSystem sourceCRS = ???
CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:4326");

MathTransform 变换 = CRS.findMathTransform(sourceCRS, targetCRS); 几何 targetGeometry = JTS.transform(geo, transform); 任何帮助将不胜感激。

【问题讨论】:

    标签: java geo


    【解决方案1】:

    如果在地理对象上设置了 CRS 值,则适当的方法调用是:

    geo.getCoordinateReferenceSystem()
    

    如果没有在几何体上设置它,那么您需要找到一个合适的对象来获取它。 GeoTools Geometry CRS Tutorial 有一些示例(架构、世界),GeoTools JavaDoc 有完整的 getCoordinateReferenceSystem() 方法声明/实现列表。

    【讨论】:

    • 感谢您的回答。如果我想将几何转换为默认的 CSR,我可以使用以下方法:JTS.toGeographic(this.geo, DefaultGeographicCRS.WGS84); ???
    • toGeographic(...) 转换为 WGS84,因此您可以使用代表源 CRS 的 CRS 作为参数。
    猜你喜欢
    • 2011-08-24
    • 2019-07-14
    • 2023-04-06
    • 2021-07-09
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2017-05-31
    • 2014-09-08
    相关资源
    最近更新 更多