0

나는 lat와 lon 점이 두개 있습니다. 예를 들어 좌표 (lat1, lon1)와 (lat2, lon2)에 두 위치 (point_1 및 point_2)가 있다고 가정합니다. point_2와 같은 위도이지만 point_2의 동쪽 또는 서쪽에 xkm 인 세 번째 점을 계산하고 싶습니다. 따라서 세 번째 점은 point_2와 동일한 위도를 갖지만 거리 x (킬로미터)에 따라 다른 경도를 가지므로 point_3은 (lat2, lon?)가됩니다. IDL에이 글을 쓰고 있지만 다른 언어 나 공식도 환영합니다.주어진 위도/경도의 동/서 xkm 인 위도/경도를 어떻게 찾을 수 있습니까?

감사

+0

때문에, 원래의 공식에 감소하는 경우이 문제는 일부 trigonometrics 및 기본 수학으로 풀 수있다. 물론 알아낼 수 없습니까? – svens

+0

어떤 점과 관련이 있는지 분명하지 않습니다 ...? 귀하의 질문에 따라, 당신은 서쪽 또는 포인트 2 동쪽 지점 x ml 찾고 있습니다. 그 올바른 ....? – KristoferA

+0

좌표는도 단위입니다 : 분 : 초 또는 십진수? –

답변

1

당신은 아무 곳이나 1을 사용하지 않는, 당신을합니까? 우리의 요점은 P = (위도, 경도)

첫 번째 규칙은 다음과 같습니다 : 그림 그리기! 지구 횡단면에서 두 점을 통과하는 지구 축을 중심으로하는 원의 반경이 R*cos(lat)임을 알 수 있습니다. (R은 지구의 반지름입니다. 여기에 지구를 타원체로 생각할 필요가 없기를 바랍니다.) 길이 x360*x/(2*pi*R*cos(lat))의 각도를 사용합니다. 난 당신이 서경 0으로 -180을 사용하고 있으리라 믿고있어

P' = (lat, lon +- 180*x/(2Rcos(lat))) 

, 그래서 당신은 동쪽/서쪽을 ​​위해 +/-있다 : 당신이 원하는 새로운 점은 다음이다. 둘러보기가 필요한지 확인해야합니다. 의사 코드 :

그냥 재미를 위해
if (lon < -180) 
    lon += 360 
else if (long > 180) 
    lon -= 360 

: 당신은 지구가 타원형 인 신경 않는 경우, 원의 반지름은 (위도 대신 R의 * COS()) :

1/sqrt(tan^2 lat/Rp^2 + 1/Re^2) 

Rp는 극 반경이고 Re는 적도 반경입니다. 라인란 트 = 다시는이 1 + tan^2 lat = sec^2 lat

0
import math 

R = 6378.1 #Radius of the Earth 
brng = 1.57 #Bearing is 90 degrees converted to radians. 
d = 15 #Distance in km 

#lat2 52.20444 - the lat result I'm hoping for 
#lon2 0.36056 - the long result I'm hoping for. 

lat1 = math.radians(52.20472) #Current lat point converted to radians 
lon1 = math.radians(0.14056) #Current long point converted to radians 

lat2 = math.asin(math.sin(lat1)*math.cos(d/R) + 
    math.cos(lat1)*math.sin(d/R)*math.cos(brng)) 

lon2 = lon1 + math.atan2(math.sin(brng)*math.sin(d/R)*math.cos(lat1), 
      math.cos(d/R)-math.sin(lat1)*math.sin(lat2)) 

lat2 = math.degrees(lat2) 
lon2 = math.degrees(lon2) 

print(lat2) 
print(lon2) 
관련 문제