일련의 좌표 내에있는 점 찾기


9

PostGIS db가 있고 일부 지역 (경계 상자)에있는 점을 찾고 싶습니다. 나는 두 세트의 좌표를 가지고 있는데, 필요한 경우 상자를 형성하는 네 개의 직사각형 점을 모두 얻을 수 있습니다. 해당 데이터 열의 이름은 'point'이며 point 유형이기도합니다.

  • 어쨌든 4 개의 좌표 세트 (위도 / 경도)를 지정하고 상자 안에있는 모든 점을 가져옵니다.
  • 또는 두 점을 지정하고 DB가 사각형의 모서리를 계산하게하고 그 점을 반환하십시오

내가 달성하고자하는 것에 대해 명확하지 않은 경우를 대비하여. 점 대신 위도 및 경도 필드가있는 경우 'vanilla'sql과 동등한 내용은 다음과 같습니다.

SELECT * FROM myTable where lat> xMin AND lat < xMax AND long > yMin and long < yMax

업데이트 된 편집 :

underdark의 해결책을 찾고 있습니다. 처음에는 ST_MakePoint 구성자가 없었지만 (지금은 그렇습니다) 여전히 매우 비슷한 오류가 발생합니다 (다른 문자에서만).

SELECT * FROM myTable WHERE ST_Within(ST_MakePoint(point),GeometryFromText('POLYGON((75 20,80 30,90 22,85 10,75 20))',4326))

이 오류가 발생합니다.

ERROR:  function st_makepoint(point) does not exist
LINE 1: SELECT * FROM triples WHERE ST_Within(ST_MakePoint(point),Ge...
                                          ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


********** Error **********

ERROR: function st_makepoint(point) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Character: 39

편집하다:

단기적으로는 다음과 같이 해결할 수 있습니다.

SELECT * FROM triples WHERE box '((point1),(point2))' @> point

그러나 PostGIS 기능 중 어느 것도 나를 위해 작동하지 않는 이유를 해결해야합니다.


선호하는 방법은 한 곳에만 게시하는 것입니다. 해당 장소가 부적절하거나 해결되지 않으면 쉽게 이전 할 수 있습니다. GIS는 귀하의 질문이 있어야 할 위치이기 때문에 어떤 조치도 취하지 않겠지 만 SO에 대한 교차 게시물을 삭제하도록 촉구합니다.
whuber

1
@whuber .. 완료.
Ankur

select GeometryFromText ( 'POLYGON ((75 20,80 30,90 22,85 10,75 20))', 4326)-작동합니까?
Sean

무슨 말인지 잘 모르겠습니다. 나는 당신이 말한 것에 대한 다양한 변형을 시도했지만 작동하지 않았습니다
Ankur

은 "포인트"열은 무엇 ST_MakePoint (점)에서 참조
언더 다크

답변:


9
SELECT * FROM myTable WHERE 
ST_Within(the_geom, GeometryFromText ('POLYGON((75 20,80 30,90 22,85 10,75 20))', 4326))

<-필요에 따라 좌표를 교체


바보 같은 질문에 대한 미안하지만 'the_geom'은 무엇입니까 ... SELECT * FROM myTable 쿼리의 별칭을 지정해야하며 그 값이 'the_geom'이됩니다
Ankur

물론 검색중인 열입니다. 나는 그것을 db_column 또는 이와 유사한 것으로 부를 것이지만, postgis 문서는 다르게 생각합니다 ... 그것이 무엇인지 알면 의미가 있습니다.
Ankur

1
이것을 실행할 때 GeometryFromText가 존재하지 않는다는 오류가 발생합니다. postgis 2.0을 사용하고 있습니다. 또한 st_geomfromtext를 시도했습니다.
picardo

@underdark 어쩌면 내가 잘못했지만 괄호가없는 것 같습니다.
Davide Pastore

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.