我运行这个查询:
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
select *
where
{
?x <http://www.opengis.net/ont/geosparql#hasGeometry> ?fGeom .
?fGeom geo:asWKT ?fWKT .
FILTER (geof:sfWithin(
'<http://www.opengis.net/def/crs/EPSG/0/27572>
Point (729326 2521619) '^^geo:wktLiteral,
?fWKT))
}使用以下命令对GraphDB进行攻击:
<http://data.edf.fr/departements/dep_france_dom/Geometry/2> a <http://www.opengis.net/ont/geosparql#Geometry> ;
<http://www.opengis.net/ont/geosparql#asWKT> "
<http://www.opengis.net/def/crs/EPSG/0/27572> MULTIPOLYGON (((729326 2521619,....在商店里,我没有得到任何结果。你认为这是因为“法国异国情调”的CRS吗?
发布于 2018-04-30 16:58:10
更新:
代码如下:
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
SELECT * WHERE {
?obj geo:hasGeometry ?fGeom .
?fGeom geo:asWKT ?fWKT .
FILTER (geof:sfTouches(?fWKT, ''' POINT(729326 2521619)'''^^geo:wktLiteral))
}有很多事情要说:
Polygon边界上的Point不能对其执行Within操作。为了优化起见,最好将变量几何作为函数中的第一个参数,将形式几何作为第二个参数。geof: 需要来处理< Touches >d17Instersects >。这是许多讨论的一个大主题,但这是唯一可行的方法……然后,您需要删除所有几何图形和请求中的CRS规范。我试过不同的CRS,它们也不起作用。正如this thread中所说的。
如果WKT只能与WGS84一起使用,为什么还要在WKT中精确定位CRS呢?当可以通过重新投影轻松完成时,为什么只使用WGS84?我不知道,讨论是开放的。
最后,再次强调,一定要正确地重新投影数据。
https://stackoverflow.com/questions/49732420
复制相似问题