4

iPhoneで地図アプリを実装しています。ユーザーの現在地を地図で拡大したい。精度に基づいてズームアップしたいと思います(マップアプリの動作をエミュレートします)。

このメソッドを実装しています:

    - (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation {

私が直面している問題は、CLLocation がプロパティ horizo​​ntalAccuracy と verticalAccuracy を使用して精度を提供することです。これは最終的にはメートルを意味します。ただし、マップを中央に配置するには、次を使用します。

MKCoordinateRegion region;
MKCoordinateSpan span;
region.center = newLocation.coordinate; 
span.latitudeDelta=.005;  //THIS IS HARDCODED
span.longitudeDelta=.005; //THIS IS HARDCODED   
region.span = span;

[mapView setRegion:region animated:YES];

horizo​​ntalAccuracy (メートルで表される) に基づいて latitudeDelta (度で表される) を計算する方法を探しています。

正確な変換である必要はありません(現在の場所を含め、かなりの計算が必要になる変換式を期待していません)、おおよその値だけです。

何か案は?

ありがとう。ゴンソウ

4

2 に答える 2

13

計算を行う必要はありません。を使用するだけMKCoordinateRegionMakeWithDistance()です。

于 2010-02-11T19:08:44.713 に答える
0

次のコードを使用して、MapView に表示されるセンターとスパンを設定します。それはうまくいくはずです。

MKCoordinateRegion region = {{0,0},{.5,.5}}; 
region.center.latitude = doubleLattitude; //user defined
region.center.longitude = doubleLongitude;//user defined
[mapView setRegion:region animated:YES]; 
于 2012-06-22T12:53:51.110 に答える