我正在使用stSPARQL,而裁判说:


xsd:float strdf:area(strdf:geometry A):如果曲面是多边形或多多边形,则返回曲面的面积。


所以我正在尝试:

PREFIX geo: <http://geo.linkedopendata.gr/gag/ontology/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX strdf: <http://strdf.di.uoa.gr/ontology#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
...
?municipality geo:has_geometry ?geometry . // so far so good (checked)
FILTER(strdf:area(?geometry) = ?area) .


结果我什么也没得到。我的总体目标是获得所有直辖市的总面积,但我什至无法获得!任何想法?

请注意,这是我第一次使用空间度量函数,因此我要尝试的是收集并显示strdf:area()的结果,但是我失败了!

几何的第一个结果是:


“ MULTIPOLYGON(((((476162.8125 3949684,476195.687499999 3949675,476216.000000001 3949675,476226.1875 3 ...更多




编辑:

如果尝试使用此命令:?area = strdf:area(?geometry) .,则会收到错误消息:


在第15行第9列遇到了“” =“” =“”,期望出现以下情况之一:“(” ...“!” ...“ ^” ...“ a” ... ... .. 。

最佳答案

我认为您想对具有返回值的函数进行的操作是应该以某种方式在select子句中使用它。
例如:

PREFIX geo: ...
PREFIX rdf: ...
PREFIX strdf: ...
PREFIX xsd: ...
...
SELECT (strdf:area(?geometry) AS ?myarea)
WHERE {
        ?municipality geo:has_geometry ?geometry .
}


假设这可以为您提供所有需要添加的区域,只需使用SUM(?myarea)函数即可。这将添加“区域”功能找到的所有答案。在以前的情况下,您的select子句类似于:

SELECT (SUM(strdf:area(?geometry)) AS ?myarea)

关于rdf - 获取市辖区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34698733/

10-13 01:18