2014-07-24 2 views
0

안녕하세요, 내 사용자의 위치를 ​​사용하여 Android 및 Android 앱을 개발하여 위도와 경도로 을 변환하면 내 사용자도 범위를 설정합니다 (예 : 10km까지). 사용자가 내 앱에서 검색을 수행하고, 그리고 나는 웹 서버에서 어떤 장소에서 이 있는지를 검색 할 것이고, 웹 서버는 나에게 장소 목록을 반환 할 것이다. 질문은 이다. 위도와 경도가 지정된 범위 내에 있는지 어떻게 알 수 있습니까?위도와 경도가 지정된 범위 내에 있는지 어떻게 알 수 있습니까?

예 :

 
user position -14.84598758/-17.54817477 
 
position 1 -14.4451524/-16.54654254 // this is in the 10km range? 
poistion 2 -14.8444477/-17.54141587 // too? 

구글지도 API를 V3 -

+0

http://googlemaps.github.io/android-maps-utils/javadoc/com/google/maps/android/SphericalUtil.html을 확인하십시오. 프로젝트에이를 포함 시키거나 일반적인 LatLng 계산식을 찾을 수 있습니다. – user2808624

답변

0

여기에 안드로이드 Pythagorean Theorem - X 값과 2 점 모두 Y의 값을 모두 사이의 차이점을 찾아 계산하는 것을 사용 빗변의 길이.

이것은 가장 일반적인 유형의 지오 펜스 인 원의 반경을 제공합니다. 더 효율적인 "정사각형"영역은 X와 Y의 범위를 비교하여 데이터베이스 쿼리에서 간단히 계산할 수 있으며 더 빠른 결과를 얻기 위해 인덱싱 할 수도 있습니다. 데이터베이스 쿼리에서 검색 가능한 중간 지점의 결과 집합을 줄이려면 사각형 (ABS (DIFF (x1, x2)) < 빗변과 ABS (DIFF (y1, y2)) < 빗변으로 미리 필터링 할 수 있습니다. SQL에서 범위 쿼리로 변환되어 결과를 좁힐 수 있기 때문입니다.

관련 문제