了解 Marklogic 的 geo.regionDe9im 结果

问题描述 投票:0回答:1

我收到了

2FFF1FFFF
以下查询的 DE-9IM 结果:

var marklogicGeo = require('/MarkLogic/geospatial/geospatial');
relation = marklogicGeo.regionDe9im(
  "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))", 
  "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))");

由于两个多边形完全相同,我期望得到一个可以解释为

TFFFTFFFT
的结果,这是等效的 DE-9IM 交叉模式(通过 GeoSPARQL 函数定义
geof:sfEquals
geof:ehEquals
geof:rcc8eq
) )

我不清楚为什么最后一个路口,外部的路口,是

False

这是 MarkLogic 中的错误还是我遗漏了什么?

geometry marklogic geosparql
1个回答
0
投票

GeoSPARQL 规范和描述 EQUALS 谓词的 DE-9IM 论文之间似乎存在差异。

https://docs.ogc.org/is/22-047r1/22-047r1.html

https://giswiki.hsr.ch/images/3/3d/9dem_springer.pdf

OGC GeoSPARQL 规范似乎对相等关系更加严格。

TFFFTFFFT
T*F**FFF*
。 MarkLogic GeoSPARQL 功能扩展了第一篇论文的 DE-9IM 规范,因为原始地理空间功能是在 GeoSPARQL 功能之前构建的。

如果您在 MarkLogic 中运行以下命令,其计算结果为

true

var marklogicGeo = require('/MarkLogic/geospatial/geospatial');
relation = marklogicGeo.equals(
  "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))", 
  "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))");

希望这有帮助。

纽伯格

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.