Έχω μια λίστα με μερικές εκατοντάδες τοποθεσίες και το μόνο που θέλουν να εμφανίσετε μια MKPinAnnotation για αυτές τις θέσεις επί του παρόντος στην οθόνη. Η οθόνη αρχίζει με την τρέχουσα θέση του χρήστη με μια ακτίνα δύο μιλίων. Φυσικά, ο χρήστης μπορεί να μεταβείτε και ζουμ στην οθόνη. Αυτή τη στιγμή, έχω περιμένει για μια εκδήλωση ενημέρωση χάρτη, και στη συνέχεια βρόχο μέσω λίστας θέση μου, και να ελέγξετε τις συντεταγμένες ως εξής:
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
CGPoint point;
CLLocationCoordinate2D coordinate;
. . .
/* in location loop */
coordinate.latitude = [nextLocation getLatitude];
coordinate.longitude = [nextLocation getLongitude];
/* Determine if point is in view. Is there a better way then this? */
point = [mapView convertCoordinate:coordinate toPointToView:nil];
if( (point.x > 0) && (point.y>0) ) {
/* Add coordinate to array that is later added to mapView */
}
Γι 'αυτό και ζητώ convertCoordinate όταν το σημείο θα είναι στην οθόνη (αν δεν παρερμηνεύουν αυτή τη μέθοδο η οποία είναι πολύ πιθανό). Αν η συντεταγμένη δεν είναι στην οθόνη, τότε ποτέ δεν το προσθέσετε στη MapView.
Το ερώτημά μου, είναι αυτός ο σωστός τρόπος για να καθοριστεί εάν μια θέση για γεωγραφικό πλάτος / μήκος θα εμφανίζονται στην τρέχουσα προβολή και θα πρέπει να προστεθεί στο το MapView; Ή θα έπρεπε να κάνω αυτό με διαφορετικό τρόπο;













