2017-01-27 13 views
1

나는 geosparql과 특히 고심하고있다.GEOSPARQL "within"과 스타도

open gis documentation에서 찾을 수있는 설명서는 geo:SpatialObject이고 geo:Featuregeo: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 : asWKT? gWKT입니다. 필터 (geof : within (? g, "POLYGON (- 0.05 51.1, 0.25 51.1, -0.05 52,0.25 52))"^^ geo : wktLiteral)) } – ChrisUK

+0

폴리곤에 대한 지원을 가능하게했지만 잘못 했어. 다른 사람들을 위해서 : jts-core jar 파일은 stardog 설치 디렉토리에 server 아래에 만들어야하는 'ext'라는 폴더에 있어야합니다. – 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은 닫을 것입니다).

또는이를 단순화 할 수 있습니다 (그리고 JTS에 대한 필요성을 제거)과 같이 봉투를 사용하여 : "ENVELOPE(-0.05, 0.25, 52, 51.1)"^^geo:wktLiteral (minLat, maxLat, maxLon을 minLon는 - 요구되는 홀수 순서를 주목하라).

+0

올바르게 이해하면 ENVELOPE는 필자가 요구하는 해결책입니다. 감사. – ChrisUK