MapKit iPhone Разработка;Текущее местоположение и аннотации - PullRequest
0 голосов
/ 02 ноября 2010

Проще говоря, я создаю приложение, в котором я хочу отображать бары и рестораны в виде аннотаций на карте в городе, но мне также хотелось бы, чтобы приложение показывало текущее местоположение пользователя.Мне нужно знать, как легко добавлять несколько пользовательских аннотаций, а также показывать мое текущее местоположение.Кто-нибудь может помочь?

Вот часть моего 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"];
 }

return pinView;}

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

для отображения текущего местоположения используйте это

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];
}
1 голос
/ 02 ноября 2010

Вам нужно указать вид карты, чтобы показать местоположение пользователя (по умолчанию оно не включено).Добавьте это к viewDidLoad:

[mapView setShowsUserLocation:YES];

Обратите внимание, что в симуляторе "местоположение пользователя" всегда является Купертино, Калифорния, поэтому вы можете не видеть его в зависимости от текущего центра карты и масштаба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...