GraphDB& GeoSPARQL

时间:2018-04-09 11:58:15

标签: graphdb geosparql

我运行此查询:

private void releaseMediaPlayer() {
    if (mMediaPlayer != null) {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
    mAudioManager.abandonAudioFocus(mOnAudioFocusChangeListener);
}

对抗GraphDB:

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))
}

在商店里,我没有得到任何结果。 你认为这是由于法国异国情调所致吗? CRS?

1 个答案:

答案 0 :(得分:0)

更新:

以下是代码:

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. 位于Point边框的Polygon不能Within。而是TouchesInstersects边框。
  2. 为了优化,最好是变量几何是函数中的第一个参数,而形式几何是第二个参数。
  3. 重点是geof: 需要才能使用<http://www.opengis.net/def/crs/OGC/1.3/CRS84>。它是许多讨论的重要主题,但它是唯一有效的方法......然后,您需要删除所有几何和请求中的CRS规范。我尝试过不同的CRS,但它们都没有用。
  4. 正如在this thread中所说的那样。

    为什么WKT中的CRS只适用于WGS84?为什么只有WGS84可以通过重投影轻松完成?我不知道,讨论是开放的。

    最后,请务必再次正确重新投放数据。