首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphDB和GeoSPARQL

GraphDB和GeoSPARQL
EN

Stack Overflow用户
提问于 2018-04-09 19:58:15
回答 1查看 260关注 0票数 0

我运行这个查询:

代码语言:javascript
复制
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进行攻击:

代码语言:javascript
复制
<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吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-30 16:58:10

更新:

代码如下:

代码语言:javascript
复制
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))
}

有很多事情要说:

  1. 位于Polygon边界上的Point不能对其执行Within操作。为了优化起见,最好将变量几何作为函数中的第一个参数,将形式几何作为第二个参数。
  2. 最重要的一点是,geof: 需要来处理< Touches >d17Instersects >。这是许多讨论的一个大主题,但这是唯一可行的方法……然后,您需要删除所有几何图形和请求中的CRS规范。我试过不同的CRS,它们也不起作用。

正如this thread中所说的。

如果WKT只能与WGS84一起使用,为什么还要在WKT中精确定位CRS呢?当可以通过重新投影轻松完成时,为什么只使用WGS84?我不知道,讨论是开放的。

最后,再次强调,一定要正确地重新投影数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49732420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档