Erneuern Sie meinen mapView
-
19-09-2019 - |
Frage
ich habe eine mapView mit Stiften auf, und den folgenden Code für CLLocation und getDistance zwischen mir und anderen Punkte auf der Karte:
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation{
Koordinate *kunde = [[Koordinate alloc] init];
kundenPoints = [[NSMutableArray array] retain];
for(int i = 0; i<[eventPoints count]; i++){
kunde = [eventPoints objectAtIndex:i];
CLLocation *userLoc = [[CLLocation alloc] initWithLatitude:kunde.latitude longitude:kunde.longtitude];
double distance = [newLocation getDistanceFrom:userLoc] / 1000;
if(distance <= 100){
[kundenPoints addObject:kunde];
}else {
}
}
[mapView addAnnotations:kundenPoints];
}
aber wie kann ich eine Methode implementieren, die die Karte aktualisiert, wenn ich Registerkarte auf eine Schaltfläche? dass ich immer die Stifte um mich, wenn ich will. die Taste ist nicht das Problem, nur die Refresh!
ich hoffe, dass mir jemand helfen könnte ??
Mit freundlichen Grüßen Marco
Lösung
soweit ich weiß, dass es nicht so etwas wie removeAllAnnotations ist, zumindest nicht in iOS4 SDK ... obwohl Sie es schnell beheben können mit
NSArray *ants = [mapView_ annotations];
[mapView_ removeAnnotations:ants];
Dies gilt auch für Overlays
NSArray *ants = [mapView_ overlays];
[mapView_ removeOverlays:ants];
so weit ist der beste Weg, die ich gefunden habe, es zu tun.
Andere Tipps
Sie einfach zu Ihrem mapView removeAllAnnotations
und die neuen hinzufügen, wird dies die Anmerkungen auf Ihrer Karte aktualisieren.