2013-04-05 243 views
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功能。 问题在于,当用户位置发生变化时(用户正在移动时),屏幕会缩放他,但我无法移动屏幕,如果我尝试将其移动回来,立即返回到用户位置, t看到整个地图。

+0

位于'-locationManager:didUpdateLocations:'方法中,在获得位置后,尝试'stopUpdatingLocation',或避免每次获得回调时运行缩放过程。 – holex 2013-04-05 12:41:15

回答

1

我通过添加touchesMoved函数解决了这个问题,我停止更新此函数中的位置。 解决。

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]; 
+0

该应用完全放大,但问题是我无法将地图从当前用户位置移动到任何地方。当我尝试移动地图时,立即返回用户当前位置。 – MohamedGooner 2013-04-05 12:14:49

+0

一旦检查我已经更新了我的答案。 – Balu 2013-04-05 12:22:51

+0

在哪里放这个代码? – MohamedGooner 2013-04-05 12:48:56