地図に 1 ~ 12 個の目印を配置しています。マップをズームアウトしてすべてのピンを表示できるように、最も外側の 2 つのポイントを計算するのに問題があります。
CLLocationDistance distLong = [zoomLocationMax.longitude getDistanceFrom:zoomLocationMin.longitude];
CLLocationDistance distLat = [zoomLocationMax.latitude getDistanceFrom:zoomLocationMin.latitude];
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(m_MapView.userLocation.coordinate, distLat, distLong);
MKCoordinateRegion adjustedRegion = [m_MapView regionThatFits:viewRegion];
m_MapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[m_MapView setRegion:adjustedRegion animated:YES];
私は上記のコードでだまされてきましたが、いくつかの問題を予見できます:
1) 最初の 2 行で、Bad receiver type 'CLLocationDegres' (別名 double'} エラー) が返されます。2) ユーザーの位置を中心点にしたくないのですが、理想的には、最も遠い 2 つの点の中心にしたいと思います。 .
コードスニペット、例、または説明は非常に役立ちます!!
ありがとうございました
zoomLocatin の計算方法を表示するように編集します。私は基本的に対数と緯度を取り、最小値と最大値を決定します...それが正しいかどうかもわかりません:
CLLocationCoordinate2D zoomLocationMin;
CLLocationCoordinate2D zoomLocationMax;
if (coordinate.latitude < zoomLocationMin.latitude)
zoomLocationMin.latitude = coordinate.latitude;
if (coordinate.longitude < zoomLocationMin.longitude)
zoomLocationMin.longitude = coordinate.longitude;
if (coordinate.latitude > zoomLocationMax.latitude)
zoomLocationMax.latitude = coordinate.latitude;
if (coordinate.longitude > zoomLocationMax.longitude)
zoomLocationMax.longitude = coordinate.longitude;