2011-01-05 2 views
1

로컬로 저장된 공간 데이터를 사용하여 geolocation을 사용하여 iPhone 응용 프로그램을 개발하고 싶습니다.iPhone에서 SQLite 데이터베이스를 사용하여 공간 요청

이러한 응용 프로그램의 까다로운 부분은 "나에게 가장 가까운 주변 포인트를 원합니다"라는 요청에 대한 응답입니다. 이것은 데이터를 정렬해야하기 때문에 주문 기준은 구의 거리입니다 (예 지구는 평평하지 않습니다 ^^). 따라서 효율적인 알고리즘은 매우 복잡합니다.

공간 데이터가 내 응용 프로그램 (따라서 sqlLite 사용)에 로컬로 저장되므로 MyGis 또는 PostGis와 같은 라이브러리를 사용할 수 없습니다. SqlLite에서 "SpatiaLite"를 보았지만 iPhone과 함께 사용하는 것이 편리하지는 않습니다.

누구나 쉽게 할 수있는 라이브러리를 알고 있습니까? ... 또는이 작업을 수행하는 편리한 방법은 무엇입니까?

답변

1

SQL 쿼리에서 주어진 점과 저장된 점 사이의 거리를 계산하고 그 값으로 결과를 정렬 한 다음 첫 번째 x 행을 반환해야합니다.

얼마나 많은 데이터 포인트가 있는지 또는 얼마나 분산되어 있는지 표시하지 않습니다. 큰 데이터 세트 인 경우이 방법은 비용이 많이 들며 가능한 하위 세트를 식별하는 방법을 살펴보아야합니다 모든 거리를 계산하기 전에 점을 계산하고, 같은 장소에서 반복적으로 같은 정보를 계산하지 못하도록 캐싱/사전 계산 기법을 사용합니다. 기본적으로 모든 데이터 행에서 함수를 실행하므로 인덱스를 사용할 수 없습니다. 데이터가 아닌

http://www.mathopenref.com/coorddist.html

땅의 구형 자연의 거리에 많은 영향을하지 않습니다

는 예를 들어, 두 점 사이의 거리를 calulate하는 방법에 대한 좋은 참조가 많이 있습니다 특히 정밀도에 민감하지만, 그렇다면 실제 거리에 영향을 줄 수있는 고도 변화와 같은 다른 요인이 있습니다.

+0

안녕하세요 Purpletoucan, 답변 주셔서 감사합니다. 나는 "큰 데이터 집합"의 원인에 있기 때문에 알고리즘 자체를 코딩하는 대신 라이브러리를 찾고 있습니다. – ayorosmage

관련 문제