2013-06-27 4 views
3

9000km^2의 지역에 약 3500 개의 지리적 인 관심 장소가 있습니다. 앱이 백그라운드에서 실행되어 그 사람이 언제든지 알려주 길 원합니다. 앞서 말한 모든 점들에 근접해있다.새로운 안드로이드 API로 100 개 이상의 지오 펜스 추적하기

Google I/O 2013에 도입 된 새로운 Geofence API은 배터리 수명에 최적화 된 것처럼 보이지만 상태 코드가 GEOFENCE_TOO_MANY_GEOFENCES이되기 전에는 100 개 이상의 지오 펜스를 등록 할 수 없습니다 (데모 응용 프로그램의 수정 된 버전).

이 한도를 늘릴 수 있습니까? 아마도 일부 설정이나 API를 통해?

+0

귀하의 포인트를 배열로 유지하고 현재 위치를 직접 비교하지 않으려면 어떻게해야합니까? –

+0

하지만 가능할 때마다 정확성이나 업데이트 빈도를 줄이는 것과 같은 배터리 보존 전략을 구현해야 할 수도 있습니다. 방금 직접 만드는 대신이 목적을 위해 설계된 API를 사용하는 것이 전반적으로 더 좋을 것이라고 생각했습니다. – aadnk

답변

14

모든 포인트를 장치의 sqlite db에 다운로드하는 것이 좋습니다. 다음과 같이 가장 가까운 99 포인트를 찾으십시오. SQlite Getting nearest locations (with latitude and longitude) 그리고 모니터링 할 포인트를 Android에 등록하십시오.

그런 다음이 지오 펜스를 종료 할 때 가장 가까운 관심 지점을 다시로드해야하는 사용자의 위치가 충분히 변경되었는지 모니터링하는 데 사용할 수있는 "중요한 변경"지오 코딩을 설정하십시오.

+1

흥미 롭습니다. 네 말이 맞아.이게 효과가있어. 이 99 점을 포함하는 가장 작은 원을 가져 와서 다른 지오 펜스와 더 이상 교차하지 않을 때까지 반경을 줄이면 "중요한 변경"지오 펜스로 작동합니다. – aadnk

1

100 개의 지오 펜스가 있다고 생각합니다. 응용 프로그램 당 또는 사용자 별 응용 프로그램인지 여부는 확실하지 않습니다. 이 아이디어를 테스트하지는 않았지만 가장 가까운 100 개의 위치를 ​​등록 할 수 있습니까?

+0

나는 내 자신의 지오 펜스 시스템을 작성했다. 위치가 너무 가까워서 가장 가까운 100 포인트 만 추적 할 수 있습니다.이 작업을 안정적으로 수행하려면 GPS의 정확성이 필요할 것입니다. 하지만 나머지는 직접 구현할 수도 있습니다. 그래도 Geofence API를 사용하려는 경우 올바른 해결책 일 수 있습니다. 그래서 나는 그것을 받아 들인 것으로 표시 할 것입니다. – aadnk

+0

@aadnk 자신의 지오 펜스 시스템을 공유 할 수 있습니까? – rokonoid

+2

불행히도, 아니, 내 employeer 위해 썼습니다. 그러나 어떻게 완성했는지 설명 할 수 있습니다. 영역을 30x30 셀로 나누었습니다. 각 셀에는 셀의 중심에 가장 가까운 지오 셀 목록이 들어 있습니다. 점에서 지오 펜스를 찾기 위해 점에 가장 가까운 셀의 모든 지오 펜스와 가장 인접한 세 개의 셀을 선형 적으로 검색합니다. – aadnk