我想在应用程序在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
函数。
问题是,当用户位置发生变化时(当用户移动时)屏幕会对他进行缩放但是我无法移动屏幕,如果我尝试移动它会立即返回到用户位置,所以我不能看到整个地图。
答案 0 :(得分:3)
要缩放地图,您必须更改区域值,表示中心和span.once请参阅此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];
答案 1 :(得分:2)
我通过添加touchesMoved函数解决了这个问题,并且我停止更新此函数中的Location。 解决。