Geosparql函数

问题描述

我正在尝试将两个具有WKT坐标的区域合并为geoshape属性查询如下:

PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
PREFIX geop: <http://www.opengis.net/def/property/OGC-GeoSPARQL/1.0/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX ext: <http://rdf.useekm.com/ext#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#>
PREFIX ubmo: <http://w3id.org/UrbanAndBuildingMultiscaleOntology#>
    
select ?quar ?quar1 ?envelope
 where { 
 ?quar rdf:type ubmo:Quartier. 
 ?quar1  rdf:type ubmo:Quartier. 
 Filter(regex(str(?quar),"QuartierF4481__1")).
 Filter(regex(str(?quar1),"QuartierF4481__10")).
 ?quar ubmo:geoshape ?aWKT.
 ?quar1 ubmo:geoshape ?bWKT.
 BIND (geof:union(?aWKT,?bWKT) AS ?envelope)  
}

我在GraphDB中遇到以下错误错误500:错误 查询评估错误:验证的对象为空(HTTP状态500)。

任何建议 预先谢谢你。

解决方法

  1. 您正确使用了 geof:union,如 PS2EXE-GUI

    中的示例所示
  2. 你能告诉我们这两个几何图形吗?使用 concat 作为一种简单的方法:

BIND (concat(?aWKT,?bWKT) AS ?envelope)
  1. 顺便说一句,过滤网址不是最好的方法,您可以使用 bindvalues

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...