Как мне обновить местоположение MKAnnotation новыми координатами? - PullRequest
3 голосов
/ 22 мая 2010

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

CLLocationCoordinate2D location;
location.latitude = -36.560976;
location.longitude = -59.455807; 

for (id annotation in self.mapView.annotations) {

    if ([annotation isKindOfClass:[MyAnnotation class]]) 
    {
            [annotation setCoords:location]; //setCoords is defined in MyAnnotation class
            }
    }

Спасибо всем!

Ответы [ 4 ]

3 голосов
/ 26 апреля 2014

Расширение MKPointAnnotation, оно имеет возможность автоматически обновлять представление аннотации на карте до новых координат.

@interface MyAnnotation : MKPointAnnotation
0 голосов
/ 20 января 2011

Вам не нужно удалять аннотацию, а затем повторно добавлять ее, чтобы обновить местоположение аннотации на карте.

MapView, к которому вы добавили аннотацию, должен позаботиться об изменениях местоположения за вас. Не видя больше кода, я думаю, что проблема у вас может заключаться в том, что ваша аннотация использует переменную location вместо переменной coordinate.

Протокол MKAnnotation требует, чтобы вы реализовали переменную экземпляра CLLocationCoordinate2D coordinate в своем классе аннотаций. Также рекомендуется синтезировать свойство координат.

Попробуйте добавить переменную экземпляра CLLocationCoordinate2D coordinate и соответствующее ей свойство @property (assign, nonatomic) CLLocationCoordinate2D coordinate в файл класса аннотаций .h. Затем используйте @synthesize в файле класса аннотаций .m.

Если это не решит вашу проблему, возможно, вам придется добавить больше деталей к вашему вопросу.

0 голосов
0 голосов
/ 22 мая 2010

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

...