Sto mappando oltre 500 punti su una mappa utilizzando mapkit. Lo zoom è un po 'nervoso rispetto all'app nativa di Google Maps. Ho scoperto cosa sta causando la lentezza. Sto aggiungendo le annotazioni personalizzate in modo che possa poi aggiungere vari colori pin e pulsanti per le viste di dettaglio:Toubleshooting prestazioni del mapkit
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(AddressNote *) annotation {
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentlocation"];
annView.pinColor = MKPinAnnotationColorGreen;
annView.animatesDrop=TRUE;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}
Se commento il codice di cui sopra, tutto funziona bene. Molto morbido con lo zoom in/out. Devo aggiungere annotazioni in modo diverso per migliorare le prestazioni?
Puoi spiegare come saresti mai in grado di eseguire quel tipo di caricamento pigro? – user230949
MKMapView recapita i messaggi al proprio delegato ogni volta che la mappa scorre. Ogni volta che ciò accade, memorizza i delta di latitudine e longitudine della vista in modo da conoscere la vendita della mappa. Prima di memorizzare il valore, controllare se la scala della mappa è cresciuta o ridotta abbastanza da dover regolare il numero di annotazioni. Se è così, basta fare un calcolo del livello di dettaglio. Esegui l'elenco di annotazioni e combina quelli che si trovano a una certa distanza l'uno dall'altro in una nuova annotazione che rappresenta tutti loro. Se l'utente esegue lo zoom indietro, scambialo per le annotazioni originali. – VictorB