Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rdf 获得自治区_Rdf_Sparql_Geospatial_Geo_Spatial Query - Fatal编程技术网

Rdf 获得自治区

Rdf 获得自治区,rdf,sparql,geospatial,geo,spatial-query,Rdf,Sparql,Geospatial,Geo,Spatial Query,我正在使用,裁判说: 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/on

我正在使用,裁判说:

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) .
前缀geo:
前缀rdf:
前缀strdf:
前缀xsd:
...
市政地理:具有几何图形?几何图形。//到目前为止一切正常(已检查)
过滤器(strdf:area(?geometry)=?area)。
结果我一无所获。我的总体目标是得到所有城市的总面积,但我甚至不能得到一个!有什么想法吗

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

几何的第一个结果是:

“多多边形((476162.8125 3949684476195.68749993949675476216.000000001 3949675476226.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)函数。这会添加“area”函数找到的所有答案。在前面的情况下,select子句类似于:

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

过滤器不设置变量

从您关于希望收集strdf:area()结果的评论中, 或者


过滤器(…=?区域)
仅当查询的另一部分绑定了
?区域时才有意义。您正在这样做吗?(您尚未向我们显示您的完整查询。)没有看到你的数据,我们就不知道应该返回什么。@JoshuaTaylor我没有这样做。我没有显示查询的其余部分,因为它所做的只是找到正确的市镇,因此它是不相关的。我试图找到市镇的区域,但我不知道如何做!是的,我的代码不奇怪没有多大意义…我正在尝试收集strdf:area()的结果,但似乎没有成功:/
BIND(strdf:area(?geometry) AS ?area)
SELECT ... (strdf:area(?geometry) AS ?area) ...