2

これで、緯度 40 と経度 -80 の locationA、緯度 30 と経度 -70 の locationB という 2 つの場所の座標が得られました。

適切な視距離で両方の場所を見ることができる mapView を作成したいと考えています。

中点 (この例では {35, -75}) を見つけることで新しい座標を取得しましたが、問題は、

適切な視聴距離を得るにはどうすればよいですか? 特に、CLLocationDistance (MKCoordinateRegionMakeWithDistance を使用している場合) または MKCoordinateSpan (MKCoordinateSpanMake を使用している場合) を計算するにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

11

これは私が理解したことです:

CLLocation *pointALocation = [[CLLocation alloc] initWithLatitude:middlePoint.latitude longitude:middlePoint.longitude];
CLLocation *pointBLocation = [[CLLocation alloc] initWithLatitude:pointB.latitude longitude:pointB.longitude];
CLLocationDistance d = [pointALocation distanceFromLocation:pointBLocation];
MKCoordinateRegion r = MKCoordinateRegionMakeWithDistance(middlePoint, 2*d, 2*d);
[mapView setRegion:r animated:YES];

CLLocationDistance dには、中心と表示する2番目のポイントの間の距離(メートル単位)が含まれます。次に、中間点とメートル単位の2つの距離を使用して、画面に表示する領域を設定します。2 * dを使用することにより、画面に2番目のポイントを表示するのに十分なスペースがあることを確認します。

それが役に立てば幸い。

--ank

于 2010-11-04T05:45:28.643 に答える