2013-03-12 4 views
4

두 위치 (각각 위도와 경도 값이있는 위치)가 서로의 특정 거리 (예 : 3 마일 반경) 내에 있는지 확인하려고합니다. 각 위치의 위도와 경도를 나타내는 double 값이 있습니다. 나는이 두 위치가 서로 내에 있으면 내가 결정 얼마나 궁금경도와 위도 반경 계산

//Location 1 
Double lattitude1 = 40.7143528; 
Double longitude1 = -74.0059731; 

//Location 2 
Double lattitude2 = 33.325; 
Double longitude2 = 44.422000000000025; 

반경 여부를 내가 값의 유형이 작업을 수행하는 방법을 완전히 확실하지 않다 때문이다.

답변

0

두 점 사이의 거리를 구하려면이 코드 스 니펫을 사용해야합니다. 편집을 할

Point2D p1 = new Point2D(lattitude1, longitude2); 
Point2D p2 = new Point2D(lattitude2, longitude2); 

double distanceBetweenTwoPoints = (double)Math.sqrt((double)Math.pow((p1.x - p2.x), 2.0) + (double)Math.pow((p1.y - p2.y), 2.0)); 

--- ---

는, 두 개의 좌표 (안 2D) 솔루션에 대한 의견을 확인하시기 바랍니다. 도 라디안으로 변환에 위도와 경도 인 경우

+1

이것은 2D 공간에서 두 점 사이의 직선 거리를 제공합니다. 그가 찾고있는 것은 구에서 움직이는 두 점 사이의 최단 거리입니다. 그래서 대원 거리가 필요합니다. – Geoffrey

+1

공평하게 거리의 한계는 3 마일이며, 3 마일을 초과하는 지구의 곡률은 로컬 토폴로지의 홀수 지역 언덕의 효과와 비교할 때 대단히 중요하지 않습니다. :) –

+0

그는 좌표 사이의 거리를 알아 내기 위해이 게시물 (http://stackoverflow.com/questions/365826/calculate-distance-between-2-gps-coordinates)을 읽어야합니다. 여기에 더 완전한 설명이 있습니다 (http://www.movable-type.co.uk/scripts/latlong.html). 내 다른 응답에 대해 유감입니다. –

2

Great Circle distance

double CoordDistance(double latitude1, double longitude1, double latitude2, double longitude2) 
{ 
    return 6371 * Math.acos(
     Math.sin(latitude1) * Math.sin(latitude2) 
     + Math.cos(latitude1) * Math.cos(latitude2) * Math.cos(longitude2 - longitude1)); 
} 

를 참조하십시오.

관련 문제