1

アプリが MapKit で起動したときに、ユーザーの現在の場所にズームインしたい。これは私のコードです(viewDidLoad関数内):

Locate=[[CLLocationManager alloc]init];
Locate.delegate=self;
Locate.desiredAccuracy=kCLLocationAccuracyBestForNavigation;
Locate.distanceFilter=kCLDistanceFilterNone;
[Locate startUpdatingLocation];
[super viewDidLoad];

//Region
MKCoordinateRegion myRegion;

//Center
CLLocationCoordinate2D center;
center.latitude=Locate.location.coordinate.latitude;
center.longitude=Locate.location.coordinate.longitude;

//Span
MKCoordinateSpan span;
span.latitudeDelta=0.3f;
span.longitudeDelta=0.3f;
//Set Region
myRegion.center=center;
myRegion.span=span;
[_MyMap setRegion:myRegion animated:YES];

またdidUpdateLocation、前と同じコードで関数を実装しました。問題は、ユーザーの場所が変更されている場合 (ユーザーが移動している場合)、画面がズームされますが、画面を移動できないことです。移動しようとすると、すぐにユーザーの場所に戻るので、できません。全体マップを見る。

4

2 に答える 2

3

マップをズームするには、地域の値を変更する必要があります。これは、中心とスパンを意味します。一度、これを参照してくださいMapview Zoom

私の場合、特定のボタンをクリックしたときにマップを移動するためにこれを使用しました。

MKCoordinateSpan span = MKCoordinateSpanMake(30.5982f,0.0001f);
        CLLocationCoordinate2D coordinate = {36, 90};
        MKCoordinateRegion region = {coordinate, span};
        MKCoordinateRegion regionThatFits = [self.mapView regionThatFits:region];
        [self.mapView setRegion:regionThatFits animated:YES];
于 2013-04-05T12:08:03.613 に答える