좋은 날, 나는 Objective C Dev를 처음 접했고 여기서 http://www.movable-type.co.uk/scripts/latlong.html에있는 중점 수식의 구현을 묻고 있습니다. = 코사인 바이GPS 사이의 중간 점 좌표를 얻기위한 수식 구현 코드
= Bx로 COS (LAT2) .cos (Δlong)
(LAT2) .sin (Δlong)
latm = ATAN2 (SIN (LAT1) + 죄 :
화학식(LAT2) √ ((COS (LAT1) + Bx로) ² + By²))
lonm = lon1 + ATAN2 (저자, COS (LAT1) + Bx로)
목표 C이 화학식 내 구현 입니다.
- (CLLocationCoordinate2D) getMidPointCoords
{
double dLon = (self.toCoordinate.longitude - self.fromCoordinate.longitude) * (M_PI/180);
double Bx = cos(self.toCoordinate.latitude)*cos(dLon);
double By = cos(self.toCoordinate.latitude)*sin(dLon);
double latM = atan2(sin(self.fromCoordinate.latitude)+sin(self.toCoordinate.latitude), sqrt((cos(self.fromCoordinate.latitude)+Bx)*(cos(self.fromCoordinate.latitude)+Bx) + By*By));
double lonM = self.fromCoordinate.longitude + atan2(By, cos(self.fromCoordinate.latitude) + Bx);
CLLocationCoordinate2D midPoint;
midPoint.latitude = latM;
midPoint.longitude = lonM;
}
분명히 잘못된 좌표를 반환하지만이 코드를 디버깅 할 때. 기본적으로 내 질문은 "내가 복식을 사용하고 있다는 사실 때문입니까?" 또는이 공식을 단순히 구현 한 것입니까?
사전에 도움이나 통찰력을 제공해 주셔서 감사합니다.
그래서 어떤 변수가 잘못 계산 되었습니까? 결과를 계산기로 계산하고 단계별로 비교 했습니까? –
ABS (lon1 - lon2)로 델타 계산을 시도하십시오 – Felix