【问题标题】:postgis-jdbc-jtsparser and geotools incompatiblity?postgis-jdbc-jtsparser 和 geotools 不兼容?
【发布时间】:2021-01-25 23:04:34
【问题描述】:

我正在尝试将 postgis-jdbc-jtsparser 与 geotools gt-epsg-hsql 一起使用 - 以下内容取自我的 sbt 文件(与相关 maven 声明的数据相同

val postgisJts = "net.postgis" % "postgis-jdbc-jtsparser" % "2.5.0"
val `gt-main` = "org.geotools" % "gt-main" % "24.0"
val `gt-epsg-hsql` = "org.geotools" % "gt-epsg-hsql" % "24.0"

在运行我的测试时出现此错误:

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

调查一下,似乎 postgis 使用的是 jts 1.16.1 或更高版本,而 geotools 使用的是 1.13.0

大概 getExteriorRing 在某个时候发生了变化。 我们正在使用最新的 postgres/postgis 版本。

这是一个已知问题吗?有没有简单的解决方法?我们只使用 geotools 进行网格参考转换(通过 hsql 库)

【问题讨论】:

  • Geotools 是 1.17,所以你需要回到 22 左右才能获得 1.15

标签: postgis geotools jts


【解决方案1】:

GeoTools 在July 8th 2020 上从 1.16 移至 1.17,因此您需要确保您使用的是之前的版本,如果我正确阅读 git 历史记录,则该版本是 23.x 版本。

【讨论】:

    【解决方案2】:

    JTS 版本不同,您可以通过 Geolatte -> Geom 1.7.0 下载正确的版本(这实现了 JTS 1.17)。 您不需要只依赖 hibernate-spatial 依赖项,如果 hibernate-spatial 没有提供,请下载库以适应。

    【讨论】:

    • 谢谢,很有趣。我不会遇到geolatte-geom。还有 scala 绑定 :-)
    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 2018-07-08
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多