MapKit iPhone 开发;当前位置和注释

Posted

技术标签:

【中文标题】MapKit iPhone 开发;当前位置和注释【英文标题】:MapKit iPhone Development; Current Location and Annotations 【发布时间】:2010-11-02 18:43:22 【问题描述】:

简单地说,我正在创建一个应用程序,我想在城市内的地图上显示酒吧和餐馆作为注释,但我也希望该应用程序显示用户的当前位置。我需要知道如何轻松添加多个自定义注释,但还要显示我当前的位置。有人可以帮忙吗?

这是我的 ViewController.m 的一部分

- (void)viewDidLoad 
 [super viewDidLoad];

 [mapView setMapType:MKMapTypeStandard];
 [mapView setZoomEnabled:YES];
 [mapView setScrollEnabled:YES];
 MKCoordinateRegion region =  0.0, 0.0 ,  0.0, 0.0  ; 
 region.center.latitude = 53.793853;
 region.center.longitude = -1.752442;
 region.span.longitudeDelta = 0.01f;
 region.span.latitudeDelta = 0.01f;
 [mapView setRegion:region animated:YES]; 

 [mapView setDelegate:self];

 DisplayMap *ann = [[DisplayMap alloc] init]; 
 ann.title = @"Pashas";
 ann.subtitle = @"Leeds Road"; 
 ann.coordinate = region.center; 
 [mapView addAnnotation:ann];


-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:

    (id <MKAnnotation>)annotation 
 MKPinAnnotationView *pinView = nil; 
 if(annotation != mapView.userLocation) 
 static NSString *defaultPinID = @"com.invasivecode.pin";  pinView = (MKPinAnnotationView)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

  pinView.pinColor = MKPinAnnotationColorRed; 
  pinView.canShowCallout = YES;
  pinView.animatesDrop = YES;
   
 else 
  [mapView.userLocation setTitle:@"I am here"];
 

返回 pinView;

【问题讨论】:

【参考方案1】:

您需要告诉地图视图显示用户的位置(默认情况下不启用)。将此添加到 viewDidLoad:

[mapView setShowsUserLocation:YES];

请注意,在模拟器中,“用户位置”始终是加利福尼亚州库比蒂诺,因此您可能看不到它,具体取决于地图的当前中心和缩放比例。

【讨论】:

【参考方案2】:

为了显示当前位置使用这个

mapviewObject.showUserLocation = YES;

for(int i=0;i<10;i++)


 MKCoordinateRegion region =  0.0, 0.0 ,  0.0, 0.0  ; 
 region.center.latitude = 53.793853;
 region.center.longitude = -1.752442;
 region.span.longitudeDelta = 0.01f;
 region.span.latitudeDelta = 0.01f;
 [mapView setRegion:region animated:YES]; 

 [mapView setDelegate:self];

 DisplayMap *ann = [[DisplayMap alloc] init]; 
 ann.title = @"Pashas";
 ann.subtitle = @"Leeds Road"; 
 ann.coordinate = region.center; 
 [mapView addAnnotation:ann];

【讨论】:

以上是关于MapKit iPhone 开发;当前位置和注释的主要内容,如果未能解决你的问题,请参考以下文章

iPhone Mapkit 蓝点/用户位置区域缩放问题

ios:mapkit如何在地图上启用当前位置按钮?

使 mapkit 注释滑入其新位置

设置 canShowCallOut = NO 用于当前位置注释,iPhone

MapKit 不显示当前位置的蓝点

iPhone Mapkit 将自定义图像和引脚添加到注释中