Ich habe eine Mapview, wo die Koordinaten der Annotation ständig aktualisiert werden, aber wenn ich setCoordinate verwende, bewegt sich die Annotation nicht. Wie aktualisiere ich die Anmerkungen, um ihre Koordinaten wiederzugeben?iOS Refresh Annotations auf Kartenansicht
- (void)updateUnits {
PFQuery *query = [PFQuery queryWithClassName:@"devices"];
[query whereKeyExists:@"location"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
for (PFObject *row in objects) {
PFGeoPoint *geoPoint = [row objectForKey:@"location"];
CLLocationCoordinate2D coord = { geoPoint.latitude, geoPoint.longitude };
for (id<MKAnnotation> ann in mapView.annotations) {
if ([ann.title isEqualToString:[row objectForKey:@"deviceid"]]) {
[ann setCoordinate:coord];
NSLog(@"latitude is: %f" , coord.latitude);
NSLog(@"Is called");
break;
}
else {
//[self.mapView removeAnnotation:ann];
}
}
}
}
else {
}
}];
}
Dies kann durch einfaches Ändern der Koordinaten im Annotation-Objekt erfolgen. Es ist nicht erforderlich, die Annotation zu entfernen und dann der Map hinzuzufügen, damit die Änderung wirksam wird. –