GEOSPARQL“内部”和stardog

时间:2017-01-27 10:59:33

标签: sparql stardog geosparql

我正在努力使用geosparql特别是geo:Within。

我可以找到的文档:open gis documentation表示它需要geo:SpatialObject,而geo:Featuregeo:SpatialObject的类型。我有许多功能,有他们的位置点。我跑的时候

SELECT Distinct * WHERE {   
  ?g geo:asWKT ?gWKT .  
}

我得到25分,所有这些都应该在下面定义的(相当大的)多边形中。

然而

SELECT * WHERE {   
  ?g geo:asWKT ?gWKT .
  FILTER geof:within( ?g ,"POLYGON(51.45, -0.115,51.52,-0.08)"^^geo:wktLiteral  ) .
}

导致“内部服务器错误”。

任何想法我做错了什么?我是GeoSPARQL的新手,虽然对标准的SPARQL非常熟悉。

1 个答案:

答案 0 :(得分:3)

您的形状仍然定义不正确。看起来你正在尝试创建一个简单的矩形,所以作为POLYGON,它将是"POLYGON(( -0.05 51.1, 0.25 51.1, 0.25 52, -0.05 52, -0.05 51.1 ))"^^geo:wktLiteral(角1,角2,角3,角4,角1关闭它)。

或者,您可以使用如下所示的ENVELOPE来简化此操作(并删除对JTS的需求):"ENVELOPE(-0.05, 0.25, 52, 51.1)"^^geo:wktLiteral(minLat,maxLat, maxLon , minLon - 注意所需的奇数订单。