나는 다른 점의 경도로부터 점의 경도를 계산하려고한다. 그것들은 같은 위도를 가지고 있고 그 사이의 거리는 알려져 있습니다. 나는 코사인 공식의 sperical 법칙을 사용하려고합니다. 두 지점의 위도 (LAT1 == LAT2) 같으면코사인 법칙의 법칙
# 'lat' short for 'latitude', 'lng' short for 'longitude'.
# EARTH_RADIUS = 6371000.0, unit is meter.
#
distance = Math.acos(Math.sin(lat1)*Math.sin(lat2) +
Math.cos(lat1)*Math.cos(lat2) *
Math.cos(lng2-lng1)) * EARTH_RADIUS
난 거리 lng1 lng2로부터 계산할 수있다. 그래서 나는이 공식이 어떤 상황을 제외하고, 아주 잘 작동 코사인의 sperical 법 공식
# lat1 == lat2 == lat
# 'distance' and 'lng' are known
lng2 = Math.acos((Math.cos(distance/EARTH_RADIUS) - Math.sin(lat)*Math.sin(lat))/(Math.cos(lat)*Math.cos(lat))) + lng
에서 공식을 추론.
lat_degrees = -89.8345981836319
lng_degrees = 96.42309331893921
lat = lat1 = lat2 = (lat_degrees * Math::PI)/180 # -1.567909520510494
lng = (lng_degrees * Math::PI)/180 # 1.682900453373236
distance = 67544.06725769254
마찬가지로이 오차를
Math::DomainError: Numerical argument is out of domain - "acos"
을 apper 때문에 -2.5100189069914602 동일 Math.acos (값)의 값이 어느 미만 -1. 나는 그것에 대해 전혀 모른다. 파생 형식이 잘못 되었습니까?
입니까? –
작은 자바 스크립트를 읽을 수 있다면 https://groups.google.com/forum/#!topic/google-maps-api/PMxcDEnwNak –
@WTP를 확인하십시오. 프로그래밍 언어는 루비입니다. –