MarkLogic 搜索包含多边形的文档

标签 marklogic

我正在尝试针对包含地理空间信息的 MarkLogic 文档集编写查询。搜索包含点的文档相对容易,但我有一些定义多边形的文档。

<gml:Polygon gml:id="test" srsName="EPSG:4326">
  <gml:exterior>
    <gml:LinearRing>
      <gml:pos>0 5</gml:pos>
      <gml:pos>5 10</gml:pos>
      <gml:pos>10 5</gml:pos>
      <gml:pos>5 0</gml:pos>
      <gml:pos>0 5</gml:pos>
    </gml:LinearRing>
  </gml:exterior>
</gml:Polygon>

我的问题是我找不到 cts: 或 gml: 类型的查询,该查询将允许用户定义多边形来搜索多边形。我可以使用 ( http://docs.marklogic.com/6.0/cts:polygon-intersects ) 类型的函数来比较多边形,但这似乎不允许我查询多边形,而只能比较形状对象。

任何有关如何执行此操作的建议(或确认我无法执行此操作)将不胜感激。

最佳答案

创建一个 cts:polygon 并将其与 cts:element-geospatial-query 一起使用。 $regions 参数采用 cts:region*,而 cts:polygoncts:region 的子类型。一旦您拥有了 cts:element-geospatial-query,您就可以将其与其他 cts:query 项组合起来,并将其与 cts:search 一起使用。或search:resolve .

cts:element-geospatial-query(
  xs:QName("gml:Polygon"),
  cts:polygon(10.0, 35.0, 20.0, 40.0))

关于MarkLogic 搜索包含多边形的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22019608/

相关文章:

xml - 如何从 XML 中获取所有属性名称,而不是特定节点的值?

marklogic - 为什么需要管理员才能查看 REST 扩展的语义库?

xquery - 我如何编写一个 XQuery 来测试正在使用的 XQuery 版本?

java - 我在 Marklogic 中使用 Java API 进行通配符自定义搜索有什么问题?

json - 需要在 MarkLogic 上编写 JSON 查询

xquery - 如何在 MarkLogic 中重命名文档?

marklogic - 是否可以在没有管理员角色的情况下在 MarkLogic 9 上使用 ml-gradle?

javascript - 如何在 MarkLogic Javascript 中复制和修改文档?

javascript - Marklogic 中的非空值 - 在 Marklogic 中搜索具有非空值的数组中的属性的 JSON 文档

java - 在 MarkLogic 中保存带有嵌入二进制附件列表的 JSON 文档