Android 응용 프로그램에서 누군가가지도에서 GPS 좌표에 대한 정보를 가지고 있다는 문제가 발생했습니다. 도와주세요.
문제는지도에 서로 다른 두 지점의 좌표 (위도와 경도)가 있고
포인트가지도에서 같은 위치에 있는지 확인하고 싶습니다. 둘째, 어떤 기준에 따라 두 포인트가 서로 더 가깝다는 것입니다.
예를 들어 .. 지점이 다른 지점의 반경 100m에 있으면 더 가까운 것처럼 보입니다.
haversine 공식을 사용하여 두 점을 계산할 수 있습니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
final int R = 6371; // Radious of the earth
Double lat1 = Double.parseDouble(args[0]);
Double lon1 = Double.parseDouble(args[1]);
Double lat2 = Double.parseDouble(args[2]);
Double lon2 = Double.parseDouble(args[3]);
Double latDistance = toRad(lat2-lat1);
Double lonDistance = toRad(lon2-lon1);
Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) +
Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) *
Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
Double distance = R * c;
System.out.println("The distance between two lat and long is::" + distance);
}
이 거리를 비교할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다