【问题标题】:Geosparql functionGeosparql 函数
【发布时间】:2020-08-26 11:45:34
【问题描述】:

我正在尝试合并两个具有 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)。

任何建议 提前谢谢你。

【问题讨论】:

    标签: function geosparql


    【解决方案1】:
    1. 您正在正确使用geof:union,如https://graphdb.ontotext.com/documentation/standard/geosparql-support.html 中的示例所示

    2. 你能告诉我们这两种几何形状吗?使用concat 作为一种简单的方式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多