2017-01-27 4 views
1

私はgeosparqlに特に苦労しています。GEOSPARQL "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

多角形のサポートを有効にしましたか?ここで述べたように:http://docs.stardog.com/#_enhanced_polygons – AKSW

+0

私は確かにしました。 多角形の定義でエラーを修正しました。今すぐ 'SELECT Distinct?g WHERE { ?g geo:asWKT?gWKTです。 FILTER(?g、 "POLYGON(( - 0.05 51.1、0.25 51.1、-0.05 52,0.25 52))" ^^ geo:wktLiteral)) } – ChrisUK

+0

上記に加えて、私は多角形のサポートを有効にしましたが、間違ってしまいました。 他の人のために:jts-core jarファイルは 'ext'という名前のフォルダに置く必要があります。これはstardogインストールディレクトリにあるサーバの下に作成する必要があります – ChrisUK

答えて

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はコーナー1を外します)となります。 ( - 必要な奇数次に注目してくださいminLat、MAXLAT、maxLon、minLon)"ENVELOPE(-0.05, 0.25, 52, 51.1)"^^geo:wktLiteral

また、あなたはそうのようなENVELOPEを使用してこれを簡素化(およびJTSの必要性を削除)することができます。

+0

正しく理解して、ENVELOPEは私が必要とする解決策ですありがとう。 – ChrisUK

関連する問題