위도와 경도의 두 열이있는 테이블이 있습니다. 모든 객체를 "직사각형"(위도/경도 좌표 메트릭의 사각형) 경계 상자 안에 넣고 싶습니다. 최소 최대 위도와 최소 최대 경도. 기본적으로 다음 pseudo-SQL을 사용합니다.공간 인덱스와 두 좌표 인덱스
SELECT * FROM MyTable WHERE lat < :maxlat AND lat > :minlat
AND lon < :maxlon AND lon > :minlon
내 테이블을 인덱싱하는 가장 좋은 솔루션은 무엇입니까? 2 열 인덱스? 두 개의 열에 두 개의 인덱스가 있습니까? 공간 인덱스?
특수한 열과 특정 라이브러리가 필요하기 때문에이 경우 공간 인덱스가 실제로 필요한지 알고 싶습니다. 모든 것이 데이터베이스 이식성과 단순성을 희생시키면서 발생합니다.
참고 :이 질문은 데이터베이스에 무관심한 상태로 유지하고 싶지만, 완벽을 기하기 위해 PostGIS (PostgreSQL)를 사용하지 않고 PostGreSQL 8에서 작업한다는 사실을 언급합니다.
이 유형의 공간 쿼리 만 수행한다는 것을 보장 할 수 있습니까? 두 점 사이의 실제 세계 (큰 원) 거리를 찾는 것과 같은 단순한 추가가 필요한 경우 모든 공간 라이브러리가 실제로 유용하게됩니다 ... 또한 경계 상자가 +/- 경도를 통과하면 어떻게 될지 고려하십시오. 170,0 -170,10 (이것은 태평양 지역에서 유효한 경계 상자입니다). http://gis.stackexchange.com – tomfumb
예를 들어이 유형의 공간 쿼리 만 수행 할 것이라고 확신 할 수 있습니다. 그리고 이미 두 점 (Haversine 함수) 사이의 큰 원 거리를 계산하는 함수가 있습니다. 태평양을 건너는 것에 관해서는, 그것은 덮개가있는 지역에서 벗어났다. (그러나 minlon과 maxlon을 바꾸는 작은 시험으로 쉽게 다룰 수 있었다.) –