我正在使用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/