postgis-jdbc-jtsparser 和 geotools 不兼容?
postgis-jdbc-jtsparser and geotools incompatiblity?
我正在尝试将 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 在 July 8th 2020 从 1.16 移动到 1.17,因此您需要确保您使用的是之前的版本,如果我正确阅读 git 历史记录,那是 23.x版本。
JTS 版本不同,因此您可以通过 Geolatte -> Geom 1.7.0(实现 JTS 1.17)下载正确的版本。
您不需要只依赖 hibernate-spatial 依赖项,如果 hibernate-spatial 没有提供,请下载库进行适配。
我正在尝试将 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 在 July 8th 2020 从 1.16 移动到 1.17,因此您需要确保您使用的是之前的版本,如果我正确阅读 git 历史记录,那是 23.x版本。
JTS 版本不同,因此您可以通过 Geolatte -> Geom 1.7.0(实现 JTS 1.17)下载正确的版本。 您不需要只依赖 hibernate-spatial 依赖项,如果 hibernate-spatial 没有提供,请下载库进行适配。