2012-04-22 2 views
6

자바에서 "가까운 곳에서 관심 지점 찾기"문제를 해결하려고합니다. 즉, 위도 (lat)와 점 (point of interst)이 많이 있습니다. 그리고 나는 800m 이내의 것들을 찾고 싶습니다. 현재의 위도와 경도를 알고 있다고 가정합니다.공간 쿼리를 지원하는 메모리 데이터베이스

제 문제는이 응용 프로그램이 독립적이어야한다는 것입니다. 그래서 결과를 찾기 위해 공간 데이터베이스 쿼리에 의존 할 수 없습니다. 나는이 유용하다는 것을 발견했다 MySQL의 를 사용하여 : http://xebee.xebia.in/2010/10/28/working-with-geolocations/

현재 내가 spatital 쿼리를 지원 memeory의 DB에를 찾을 수 없습니다. R-Tree와 같은 것을 사용하려고했습니다. http://jsi.sourceforge.net/

그러나 그것이 정확한지는 알 수 없지만, 정확한 검색보다는 직사각형을 사용합니다.

어떤 의견이 있으십니까?

답변

1

실제로 jsi 라이브러리 (http://jsi.sourceforge.net)는이 문제를 해결하는 데 거의 완벽합니다. 이 정확한 시나리오를 지원하기 위해 작성되었습니다.

가까운 직사각형 (또는 점)을 검색 할 때 최대 거리를 제공 할 수 있으며 거리가 멀어지는 순서대로 결과를 반환합니다.

"800m 반경 내 모든 지점 반환"쿼리를 지원하지 않지만 실제로는 한계가 필요합니다. 따라서 jsi 라이브러리는 "반경 800m 내에서 가장 가까운 50 개의 점을 반환하는"유용한 유용한 기능을 지원합니다.

반경 내에서 모든 점을 정말로 원한다면 점의 수를 크게 늘리고 nearestN 쿼리를 실행하거나 교차 쿼리를 수행하고 자신의 코드에서 거리별로 필터링 할 수 있습니다.

1

공간 기능을 지원하는 Altibase라는 인 메모리 데이터베이스가 있습니다. OGC 사양을 준수합니다. 당신은 그것을 사용할 수 있습니다.

관련 문제