iPhone MapKit - ενημέρωση σχόλια συντεταγμένες και χάρτη

ψήφοι
2

Χρησιμοποιώ αυτό το σεμινάριο για την ένταξη MapKit με την αίτησή μου: http://iphonebcit.wordpress.com/iphone-map-kit-tutorial/

CLLocationCoordinate2D coordinate;
coordinate.latitude = 49.2802;
coordinate.longitude = -123.1182;

NSUInteger count = 1;
for(int i = 0; i < 10; i++) {
    CGFloat latDelta = rand()*.035/RAND_MAX - .02;
    CGFloat longDelta = rand()*.03/RAND_MAX - .015;

    CLLocationCoordinate2D newCoord = {coordinate.latitude+latDelta, coordinate.longitude+longDelta};
    MapDemoAnnotation* annotation = [[MapDemoAnnotation alloc] initWithCoordinate:newCoord andID:count++];
    [mapView addAnnotation:annotation];
    [annotation release];
}

και

- (MKAnnotationView *)mapView:(MKMapView *)mapViewLocal viewForAnnotation:(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapViewLocal dequeueReusableAnnotationViewWithIdentifier:@Pin];
if(pinView == nil) {
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@Pin];
    pinView.pinColor = MKPinAnnotationColorPurple;
    pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    pinView.animatesDrop = YES;
    pinView.canShowCallout = YES;
} else {
    pinView.annotation = annotation;
}
return pinView;

}

Έτσι, οι ακίδες θα θέσει στο χάρτη τυχαία. Στην αίτησή μου, οι συντεταγμένες θα αλλάξει. Πώς μπορώ να αλλάξω τις συντεταγμένες των σχολιασμών, έτσι θα πρέπει να ενημερώνονται σχετικά με το χάρτη;

Ξέρει κανείς?

Δημοσιεύθηκε 09/12/2009 στις 14:05
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
2

Στο iPhone SDK 3.x θα πρέπει να αφαιρέσετε τα σχόλια pin και να το θέσει και πάλι. Αυτό δεν είναι πολύ ωραίο, αν έχετε πολλές σημειώσεις ένα χάρτη σας.

Προσπαθώ να κάνω το καλύτερο γι 'Ony οθόνης / ανανέωση σχόλια pin μου που είναι στην οθόνη. Έτσι, αν ένας χρήστης μεγέθυνση στη Νέα Υόρκη, δεν θα υπάρξει σχολιασμούς καρφίτσα στο Σαν Φρανσίσκο και εκτός από το χρήστης δεν μπορεί να δει. Έτσι, η απόδοση θα είναι πολύ καλύτερα.

Ίσως στο μέλλον αυτό θα είναι δυνατό. Το ελπίζω :-)

Απαντήθηκε 08/02/2010 στις 13:25
πηγή χρήστη

ψήφοι
1

Από κάνω σχολιασμούς τη στιγμή που μόλις έκανε μια γρήγορη δοκιμή. Μπορείτε να το κάνετε να πάρετε μια προειδοποίηση compiler, οπότε ενδέχεται να μην υποστηρίζεται. Αλλά λειτουργεί.

Κάντε μια τάξη έθιμο MKAnnotation ώστε να μπορείτε να ορίσετε την ιδιότητα συντεταγμένων να είναι εγγράψιμο:

@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;

Στη συνέχεια, σε οποιοδήποτε συμβάν ή χρονικό διάστημα θέλετε, να αλλάξετε τις συντεταγμένες χρησιμοποιώντας κάτι σαν αυτό:

    CLLocation *loc=[[CLLocation alloc] initWithLatitude:55.0 longitude:17.0];
annotation.coordinate=loc.coordinate;
[loc release];
Απαντήθηκε 18/05/2010 στις 13:01
πηγή χρήστη

ψήφοι
1

Αυτό το σεμινάριο είναι μόνο για να πάρει ένα απόσπασμα του χάρτη για να δείξει, τίποτα άλλο. Θα πάμε να χρειάζονται ένα μεγαλύτερο φροντιστήριο. Βρήκα αυτό χρήσιμο:

http://blog.objectgraph.com/index.php/2009/04/02/iphone-sdk-30-playing-with-map-kit/

Μάλλον αυτό θα πρέπει να κάνουμε είναι να βρόχο μέσω όλων των σχολιασμών στον χάρτη, την αφαίρεση τους, τότε βρόχο μέσω της συστοιχίας των δεδομένων σας, προσθέτοντας τα σχόλια πάλι πίσω. Θα μπορούσε να είναι πιο έξυπνος γι 'αυτό και βρόχο μέσω της συστοιχίας δεδομένων, ελέγχοντας αν υπάρχει ήδη μια καρφίτσα με το ίδιο γεωγραφικό πλάτος / γεωγραφικό μήκος στο χάρτη, αλλά με αυτόν τον τρόπο γίνεται πιο περίπλοκη.

Απαντήθηκε 10/12/2009 στις 04:02
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more