【问题标题】:Error loading polygon geometries using shape file data store with geotools 24.0使用带有 geotools 24.0 的形状文件数据存储加载多边形几何时出错
【发布时间】:2020-12-24 18:32:58
【问题描述】:

我最近将我的 geotools 依赖项从 23.2 升级到了 24.0 当我尝试从具有多边形几何的形状文件数据存储中加载FeatureCollection 时出现以下错误,似乎这个问题是在 24.0 geotools 版本中引入的,现在请大家如何解决这个问题

java.lang.NoSuchMethodError: org.locationtech.jts.geom.Polygon.getExteriorRing()Lorg/locationtech/jts/geom/LineString;

【问题讨论】:

  • 看来你还没有升级你的 JTS 依赖 - 你可以从你的 pom 文件中添加依赖
  • 我只是通过将 jts 1.16.1 依赖项添加到我的 gradle 项目编译组来解决问题:'org.locationtech.jts',名称:'jts-core',版本:'1.16.1 ' 我认为解决方案是降级 jts 版本,因为它在最近的版本中不适用于 geolatte。
  • 我认为问题在于 geolatte-geom 1.6.0 和 jts-core 1.17.0 之间的不兼容性,我最近阅读了一篇关于此的文章:gitmemory.com/issue/GeoLatte/geolatte-geom/111/655654867,the 原因是原因在于JTS 1.17.0 版的 org.locationtech.jts.geom.Polygon 类在 getExteriorRing 方法中返回 LinearRing 而不是 LineString。
  • 没错,所以在 GeoLatte 升级它的 JTS 版本之前,你不能运行 GeoTools 24.x
  • 但是我现在运行 geotools 24.0 和 jts 1.16.1 它对我来说很好。

标签: polygon geotools


【解决方案1】:

GeoTools 升级到 JTS 的 1.17.0 版本,版本为 24.0 - changed the return type of the getExteriorRing to LinearRing from LineString。这应该只是一个二进制更改,因此您应该能够通过重新编译使用该方法的代码来处理它。

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多