синяя точка на карте не появляется во второй раз - PullRequest
0 голосов
/ 19 июля 2011

Я разрабатываю приложение, чтобы показать магазины, доступные в определенном почтовом индексе. Я начинаю с текущего местоположения. Я получаю синюю пульсирующую точку для моего текущего местоположения. когда я ввожу почтовый индекс, я могу показать аннотации в виде карты. У меня есть кнопка «Текущее местоположение», которая может снова вернуться к текущему местоположению. Однако во второй раз я не получаю синюю точку? Как мне его получить, это код:

- (void)showCurrentLocation 
{  
 self.mapView.showsUserLocation = YES;
    GPSAnnotation *annotation = [[GPSAnnotation alloc] initWithCoordinate:self.mapView.userLocation.coordinate];

    annotation.title = @"Location";
    [self.mapView addAnnotation:annotation];
    [annotation release];    

    MKCoordinateRegion zoomIn;
    zoomIn.center.latitude = self.mapView.userLocation.coordinate.latitude;
    zoomIn.center.longitude=self.mapView.userLocation.coordinate.longitude;

    zoomIn.span.latitudeDelta = .1f;
    zoomIn.span.longitudeDelta =.1f;

    self.mapView.showsUserLocation = YES;
    [self.mapView setRegion:zoomIn animated:TRUE];
}

// annotation view 

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(GPSAnnotation *)annotation
{
    if ([[annotation title] isEqualToString:@"Location"]) 
    {
        MKAnnotationView *annotationView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] autorelease];

        annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"blueDot"];
        annotationView.annotation = annotation;
        return  annotationView;
    }

    else  if ([annotation isKindOfClass:[MKUserLocation class]])
    {        
        return nil;
    }
}

1 Ответ

4 голосов
/ 23 июля 2011

Вы делаете где-нибудь [self.mapView removeAnnotations: self.mapView.annotations], чтобы очистить карту? Это распространенная ошибка, потому что вы также удаляете местоположение пользователя.

...