2013-10-21 3 views
0

데이터베이스에 장소 목록이 있습니다. 모두 위도/경도가 있습니다.지리적 위치에서 멀리 떨어진 위치의 목록을 얻으십시오.

내 앱에서 사용자 위치를 얻었으며 그로부터 100 미터 떨어진 모든 장소를 가져 오려고합니다.

그것을 위해, 나는 그의 위도에 100m를 추가하고, 경도

나는 이런 식으로 뭔가하려고 노력 :

double radius = 100; // 100 meters 

    double limitLatitudeNorth = latitude + radius; 
    double limitLatitudeSouth = latitude - radius; 

    double limitLongitudeWest = longitude - radius; 
    double limitLongitudeEast = longitude + radius; 

    StringBuffer query = "latitude < '" + limitLatitudeNorth + "' AND latitude > '" + limitLatitudeSouth + "' AND longitude < '" + limitLongitudeWest + "' AND longitude > '" + limitLongitudeEast + "'"; 

그러나 물론, laitude와 경도가 아닌 미터, 그래서 어떻게 합계를 만들지 모르겠다.

수식이란 무엇입니까? 나는 그것이 지구상의 지위에 달려 있다고 들었다. 제가 프랑스에 있다고 가정 해 봅시다.

애플 리케이션의 많은 수행하는 (예 : LINE) 나는 쉽게 그에 대한 코드를 찾을 수 있습니다 생각하지만 난하지 않았다 : (

어떤 생각

답변

0

당신은 distanceTo 방법을 사용할 수 있습니까? 위치 클래스 안에 다음을 수행하십시오. 위도의 거리를

Location location = new Location(); 
location.setLatitude(latitude); 
location.setLongitude(longitude); 

Location locationFromDB = new Location(); 
locationFromDB.setLatitude(latitudeFromDB); 
locationFromDB.setLongitude(longitudeFromDB); 

float dist = location.distanceTo(locationFromDB); 
if(dist<100f){ 
    //do here your magic 
} 
+0

질문은 100 미터 이내에있는 모든 장소를 찾습니다. 두 위치 사이의 거리를 찾을 수 있습니다. –

+0

@RishabhBhardwaj 질문과 답변을 다시 읽으십시오. { –

0

(이 추적 극을 통해 좋은 원) 아크 (약) = 1 해리 = 1,852m의 다음 일분 따라서 1도 = 111.12. km

경도의 변화에 ​​대해이 계수에 위도의 코사인을 곱해야합니다. 그래서 적도에서 거리 변화는 위도 변화와 동일합니다. 극점 (90도 = 0)에서 등가 선은 모두 한 점으로 수렴합니다.

관련 문제