在H2中运行空间查询的语法是什么?

农夫

我正在研究在某些GIS处理任务中使用嵌入式H2数据库。我在他们的网站上注意到他们支持JTS几何和空间索引:

http://www.h2database.com/html/grammar.html#create_index http://www.h2database.com/html/datatypes.html#geometry_type

但是,我无法使用几何/边界框找到查询。H2是否在Oracle(http://docs.oracle.com/cd/A97630_01/appdev.920/a96630/sdo_operat.htm#BJAFBCFC)中具有SDO_FILTER之类的内容如果没有,我是否误解了此功能的目的?

我知道H2有一个单独的空间插件(http://www.h2gis.org/),但是如果没有这个插件,可以进行简单的空间查询吗?

尼古拉斯

当前仅使用h2的空间查询仅限于使用几何边界框对行进行过滤。

空间特征

JTS拓扑套件提供罐子H2能够处理几何类型和空间索引。

下载JTS 1.13并将其放在h2 bin目录中。

然后编辑h2.sh:

#!/bin/sh
dir=$(dirname "$0")
java -cp "$dir/h2-1.4.178.jar:jts-1.13.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"

运行sh,将打开Web控制台。

在这里用SQL创建空间表:

CREATE TABLE GEOTABLE( GID SERIAL, THE_GEOM GEOMETRY);
INSERT INTO GEOTABLE(THE_GEOM) VALUES ('POINT(500 505)');
INSERT INTO GEOTABLE(THE_GEOM) VALUES ('LINESTRING(550 551, 525 512, 565 566)');
INSERT INTO GEOTABLE(THE_GEOM) VALUES ('POLYGON ((550 521, 580 540, 570 564, 512 566, 550 521))');

为了创建空间索引(RTREE):

CREATE SPATIAL INDEX GEOTABLE_SPATIALINDEX ON GEOTABLE(THE_GEOM);

&&操作就像一个的PostGIS。它将进行几何包络相交测试:

SELECT * FROM GEOTABLE WHERE THE_GEOM && 'POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))'

空间索引用法的证据:

EXPLAIN SELECT * FROM GEOTABLE WHERE THE_GEOM && 'POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))'

结果是:

PUBLIC.GEOTABLE_SPATIALINDEX: THE_GEOM && 'POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))' WHERE INTERSECTS(THE_GEOM, 'POLYGON ((490 490, 536 490, 536 515, 490 515, 490 490))')

如果表不是内存表,则空间索引存储在磁盘上。否则它将被存储在内存中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在H2中运行空间查询的语法是什么?

来自分类Dev

H2中的分层查询

来自分类Dev

H2查询中的无限循环

来自分类Dev

&H2的C#等效项是什么?

来自分类Dev

Python查询的语法是什么?

来自分类Dev

查询的正确语法是什么

来自分类Dev

C#-LINQ to EF中此查询的语法是什么?

来自分类Dev

SQL中查询语法之间的区别是什么

来自分类Dev

mySQL 查询中的语法错误是什么?

来自分类Dev

Spring Boot中嵌入式H2数据库的默认名称是什么?

来自分类Dev

H2 SQL语法异常

来自分类Dev

为什么此UPDATE语句在H2中失败?

来自分类Dev

什么是micronaut中的H2默认jdbc url

来自分类Dev

在“使用常量”中从Perl Heredoc中删除多余空间的Perl语法是什么

来自分类Dev

在 SAP HANA 中运行查询的正确方法是什么

来自分类Dev

语法Haskell中的@是什么?

来自分类Dev

bash中的@(... | ... | ...)语法是什么?

来自分类Dev

语法Haskell中的@是什么?

来自分类Dev

有效的语法查询是什么?

来自分类Dev

表名和列名的H2分隔符是什么?

来自分类Dev

如何启动H2查询的NamedParameterJdbcTemplate?

来自分类Dev

从HSQL到H2的迁移能否解决HSQL DB中未使用空间的问题?

来自分类Dev

从HSQL到H2的迁移能否解决HSQL DB中未使用空间的问题?

来自分类Dev

Azure 工作簿中 JSON 查询的查询功能和语法是什么?

来自分类Dev

为什么<h1>中的<h2>不继承color属性的值?

来自分类Dev

在基于SELECT查询的SQL Server中创建表的正确语法是什么

来自分类Dev

在href查询字符串中包含ID和Class的语法是什么?

来自分类Dev

在PostgreSQL中涉及变量名称的字符串比较查询的正确语法是什么?

来自分类Dev

在CASE语句内的子查询中返回匹配项的语法是什么?

Related 相关文章

  1. 1

    在H2中运行空间查询的语法是什么?

  2. 2

    H2中的分层查询

  3. 3

    H2查询中的无限循环

  4. 4

    &H2的C#等效项是什么?

  5. 5

    Python查询的语法是什么?

  6. 6

    查询的正确语法是什么

  7. 7

    C#-LINQ to EF中此查询的语法是什么?

  8. 8

    SQL中查询语法之间的区别是什么

  9. 9

    mySQL 查询中的语法错误是什么?

  10. 10

    Spring Boot中嵌入式H2数据库的默认名称是什么?

  11. 11

    H2 SQL语法异常

  12. 12

    为什么此UPDATE语句在H2中失败?

  13. 13

    什么是micronaut中的H2默认jdbc url

  14. 14

    在“使用常量”中从Perl Heredoc中删除多余空间的Perl语法是什么

  15. 15

    在 SAP HANA 中运行查询的正确方法是什么

  16. 16

    语法Haskell中的@是什么?

  17. 17

    bash中的@(... | ... | ...)语法是什么?

  18. 18

    语法Haskell中的@是什么?

  19. 19

    有效的语法查询是什么?

  20. 20

    表名和列名的H2分隔符是什么?

  21. 21

    如何启动H2查询的NamedParameterJdbcTemplate?

  22. 22

    从HSQL到H2的迁移能否解决HSQL DB中未使用空间的问题?

  23. 23

    从HSQL到H2的迁移能否解决HSQL DB中未使用空间的问题?

  24. 24

    Azure 工作簿中 JSON 查询的查询功能和语法是什么?

  25. 25

    为什么<h1>中的<h2>不继承color属性的值?

  26. 26

    在基于SELECT查询的SQL Server中创建表的正确语法是什么

  27. 27

    在href查询字符串中包含ID和Class的语法是什么?

  28. 28

    在PostgreSQL中涉及变量名称的字符串比较查询的正确语法是什么?

  29. 29

    在CASE语句内的子查询中返回匹配项的语法是什么?

热门标签

归档