MKMapView
の位置の中間点を決定しようとしています。 here(およびhere)の概要を説明し、Objective-Cで書き直しましたが、マップはバッフィン島の北東のどこかに集中しています。 2つのパラメータは、以下のデータを持っている2つのクワリジネート間の中点を決定する
+(CLLocationCoordinate2D)findCenterPoint:(CLLocationCoordinate2D)_lo1 :(CLLocationCoordinate2D)_loc2 {
CLLocationCoordinate2D center;
double lon1 = _lo1.longitude * M_PI/180;
double lon2 = _loc2.longitude * M_PI/100;
double lat1 = _lo1.latitude * M_PI/180;
double lat2 = _loc2.latitude * M_PI/100;
double dLon = lon2 - lon1;
double x = cos(lat2) * cos(dLon);
double y = cos(lat2) * sin(dLon);
double lat3 = atan2(sin(lat1) + sin(lat2), sqrt((cos(lat1) + x) * (cos(lat1) + x) + y * y));
double lon3 = lon1 + atan2(y, cos(lat1) + x);
center.latitude = lat3 * 180/M_PI;
center.longitude = lon3 * 180/M_PI;
return center;
}
:上記のリンクJavaメソッドに基づいて
私の方法
_loc1:
latitude = 45.4959839
longitude = -73.67826455
_loc2:
latitude = 45.482889
longitude = -73.57522299
上記が正しく(モントリオールとその周辺)地図上置きされています。私は2の間の中間点にマップを中央にしようとしています、まだ私の方法は、以下を返す:
北極ではどこか、それは約500マイル南でなければなりませんlatitude = 65.29055
longitude = -82.55425
。
はい...そうでしょう。 –