我正在努力使用geosparql特别是geo:Within。
我可以找到的文档:open gis documentation表示它需要geo:SpatialObject
,而geo:Feature
是geo: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非常熟悉。
答案 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 - 注意所需的奇数订单。