2013-04-05 426 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