MKMapView iOS пользовательское местоположение пользователя Аннотация не показывает / обновляет позицию

Привет, я использую пользовательскую аннотацию вместо синей точки GPS. Я добавил его на карту, как это сделано в viewForAnnotation. Класс OurLocAnnotation соответствует делегату MKAnnotation.

    //Custom location view
if([annotation isKindOfClass:[OurLocAnnotation class]]) {
    static NSString *identifier = @"currentLocation";
    SVPulsingAnnotationView *pulsingView = (SVPulsingAnnotationView *)[self.recycleMap dequeueReusableAnnotationViewWithIdentifier:identifier];

    if(pulsingView == nil) {
        pulsingView = [[SVPulsingAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        pulsingView.annotationColor = [UIColor colorWithRed:0.678431 green:0 blue:0 alpha:1];
        pulsingView.canShowCallout = YES;
    }

    return pulsingView;
}

Показывать местоположение пользователя установлено как NO по этой ссылке: предыдущий вопрос stackru и место начала обновления вызывается из viewDidLoad

У меня проблема в том, что аннотация не отображается. Нужно ли передвигаться, чтобы она менялась и обновляла мою позицию, или я могу установить ее состояние под нагрузкой, т.е. показывать аннотацию, а затем обновлять аннотацию до моего местоположения? Если я даю аннотации в жестко запрограммированных значениях координат, которые они показывают, но я не хочу, чтобы я хотел, чтобы они основывались на моем местоположении?

- (void) locationManager:(CLLocationManager*) manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation
{


if (ourLocAnn == nil)
{
    self.ourLocAnn = [[OurLocAnnotation alloc] init];

    ourLocAnn.title = @"I am here";
    ourLocAnn.coordinate = newLocation.coordinate;
    [recycleMap addAnnotation:ourLocAnn];
}
else
{
    ourLocAnn.coordinate = newLocation.coordinate;
}

ОБНОВЛЕНИЕ: я глуп, я могу показать свое местоположение, как показано ниже, спросив менеджера местоположения о моей позиции. Я только должен надеяться, что мое местоположение обновится, когда я перееду....

ourLocAnn = [[OurLocAnnotation alloc]init];
ourLocAnn.coordinate = clController.locMgr.location.coordinate;
[recycleMap addAnnotation:ourLocAnn];

1 ответ

Решение

Да, весь вышеприведенный код работает! Наконец-то все заработало. Так что шаги для пользовательского loc, который также обновляется с вашими движениями выше.

Другие вопросы по тегам