将地理 PostGIS 功能与 H2GIS 结合使用
Posted
技术标签:
【中文标题】将地理 PostGIS 功能与 H2GIS 结合使用【英文标题】:Use Geography PostGIS function with H2GIS 【发布时间】:2020-12-21 15:32:43 【问题描述】:我有这个功能,我得到一个休眠空间几何类型,并在 米 中缓冲它
entityManager
.createNativeQuery(“SELECT ST_BUFFER(GEOGRAPHY(:geometry), :margin, ‘join=mitre’) AS BUFFERED_GEOMETRY”)
.setParameter(“geometry”, geometry)
.setParameter(“margin”, margin)
.unwrap(NativeQuery.class)
.addScalar(“ BUFFERED_GEOMETRY”, new JTSGeometryType(PGGeometryTypeDescriptor.INSTANCE))
.getSingleResult();
此代码在我使用 postGIS 时运行良好,但当我在测试中使用 h2GIS 时出现 sql 错误
Function “GEOGRAPHY” not found
我确实看到 H2GISFunctions.class 中不存在这个函数和其他一些函数。有没有解决的办法?除了在我的测试中使用 Postgres 吗?
【问题讨论】:
【参考方案1】:我不知道 H2GIS,但是如果您避免大多数 DDL 并使用 TRUNCATE
在测试之间清除数据,那么 PostgreSQL 几乎和 H2 一样快,那么您为什么不想针对您也使用的数据库进行测试在生产中?
【讨论】:
这个测试是更大的测试模块的一部分,它已经在使用 h2,我真的不想重构或影响所有其他测试 那我没有给你答案。不过,您可以尝试自己实现这些 H2 功能。不知道实现一个GEOGRAPHY
函数有多难,但是既然可以在H2中使用Java实现函数,应该不会太难。以上是关于将地理 PostGIS 功能与 H2GIS 结合使用的主要内容,如果未能解决你的问题,请参考以下文章
postgresql导入shp地理文件并用uDig连接postgresql显示地图信息