【发布时间】: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 它对我来说很好。