2013-10-09 73 views
0

我檢查了很多鏈接並搜索了很多。我也嘗試了這些代碼,但沒有成功,所以最後我在這裏發佈它。如何保持更新用戶使用ios MapKit的位置藍點

任何人都可以幫助我瞭解用戶位置更新。

  • 我知道如何顯示用戶當前的位置,它只是一個檢查 showUserLocation。

  • 我知道有位置管理和委託位置保持更新。

我嘗試了幾個代碼,其中人們正在更新位置管理器更新委託中的地圖。但它不適合我。它只是顯示用戶當前位置的藍色點,但如果我移動,它不會繼續更新。

那麼,任何人都可以指導我開始該怎麼做。如何顯示用戶當前的位置在用戶移動或曾經移動過的地方都會更新地圖。

回答

1

請嘗試使用這種方法

  1. 不要忘記添加CLLocationManagerDelegate和MKMapviewDelegate在你的頭文件。

  2. 首先實現下面的一行到你重裝地圖方法或viewDidLoad中或viewWillAppear中方法:

    [mapView setShowsUserLocation:YES] 
    
  3. 不是改變,以下方法是這樣的:

    (MKAnnotationView *) mapView:(MKMapView *)mapsView viewForAnnotation:(id <MKAnnotation>) annotation 
    { 
    
         if ([annotation isKindOfClass:[MKUserLocation class]]) 
    
         return nil; 
    } 
    
1

你可以做它由你自己沒有使用showUserLocation

您應該使用CLLocationManager獲得當前位置,並將其添加到MapView的

實施MKAnnotation

@interface MyAnnotation : NSObject<MKAnnotation>{ 
    CLLocationCoordinate2D _coordinate; 
    NSString *_title; 
    NSString *_subtitle; 
} 
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle; 
@end 
@implementation MyAnnotation 
- (NSString *)title {return _title;} 
- (NSString *)subtitle {return _subtitle;} 
- (CLLocationCoordinate2D)coordinate {return _coordinate;} 
- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate {_coordinate = newCoordinate;} 
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle { 
    if (self = [super init]) { 
     _title = title.copy; 
     _subtitle = subtitle.copy; 
     _coordinate = coordinate; 
    } 
    return self; 
} 
@end 

創建1 UIViewController

​​

注:

  • 記住祛瘀e舊註釋並在接收新的時候再次添加 位置
  • 請使用iOS 5和ARC
相關問題