我正在尝试针对包含地理空间信息的 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:polygon
是 cts: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/