Πώς μπορώ να πάρω ένα ζευγάρι γεωγραφικό πλάτος, άρματα γεωγραφικό μήκος και να πάρει το MKMapView να ρίξει μια καρφίτσα και να εμφανίσει τη θέση;

ψήφοι
0

Λαμβάνοντας υπόψη ένα ζευγάρι των αρμάτων για το γεωγραφικό πλάτος και μήκος, και MapView, πώς μπορώ να πάρω το MapView να ρίξει μια καρφίτσα στην τοποθεσία και την «ζουμ» την οθόνη για να εμφανίσετε την τοποθεσία;

Έχω διαβάσει μερικά από τα SO θέσεις και όλοι φαίνεται να είναι σχετικά με συγκεκριμένες πτυχές αυτού του γεγονότος, αλλά δεν ήταν σε θέση να «τα βάλει μαζί» στο κεφάλι μου.

Ευχαριστώ πάρα πολύ! -Ειλικρινής

Δημοσιεύθηκε 08/05/2010 στις 22:04
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

Η εφαρμογή του δείγματος WorldCities δείχνει πώς μπορείτε να κάνετε ζουμ σε μια συγκεκριμένη θέση, αλλά δεν πέφτει μια καρφίτσα εκεί. Μια άλλη εφαρμογή δείγμα ονομάζεται MapCallouts κάνει καρφίτσες πτώση αλλά δεν μεγεθύνετε.

Το τμήμα ζουμ είναι εύκολη (βλέπε μέθοδο didChooseWorldCity σε WorldCities).

Για να τοποθετήσετε μια καρφίτσα, θα πρέπει να στείλετε το μήνυμα addAnnotation στο MapView και στείλτε ένα αντικείμενο που υλοποιεί το πρωτόκολλο MKAnnotation. Έτσι, θα πρέπει πρώτα να δημιουργήσετε μία κλάση που υλοποιεί MKAnnotation. Εδώ είναι ένα παράδειγμα που ονομάζεται MyMapPin:

//MyMapPin.h...
#import <MapKit/MapKit.h>
@interface MyMapPin : NSObject <MKAnnotation> {
    CLLocationCoordinate2D coordinate;
    NSString *subtitle; 
    NSString *title; 
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic,retain) NSString *subtitle;
@property (nonatomic,retain) NSString *title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords;
@end

//MyMapPin.m...
#import "MapPin.h"
@implementation MyMapPin
@synthesize coordinate;
@synthesize subtitle;
@synthesize title;
- (id) initWithCoords:(CLLocationCoordinate2D) coords {
    self = [super init];
    if (self != nil) {
        coordinate = coords; 
    }
    return self;
}
- (void) dealloc
{
    [title release];
    [subtitle release];
    [super dealloc];
}
@end

Τώρα μπορείτε να τροποποιήσετε το δείγμα WorldCities με αυτόν τον κωδικό στην αρχή της μεθόδου animateToPlace:

MyMapPin *pin = [[MyMapPin alloc] initWithCoords:worldCity.coordinate];
[mapView addAnnotation:pin];
[pin release];

worldCity.coordinate στην εφαρμογή WorldCities είναι απλώς μια ιδιότητα τύπου CLLocationCoordinate2D που έχει δύο πεδία γεωγραφικού πλάτους και μήκους. Οι δύο πλωτήρες θα πάει εκεί.

Σημειώστε το addAnnotation θα βάλει απλά μια καρφίτσα στην πόλη. Για να πάρετε μια κινούμενη καρφίτσα πτώση, θα πρέπει επίσης να εφαρμόσει τη μέθοδο viewForAnnotation και που animatesDrop σε YES. Βλέπε ένα παράδειγμα στο MapViewController.m σε MapCallouts. Επίσης, ορίζεται εκπρόσωπος της MapView για όπου η μέθοδος viewForAnnotation υλοποιείται (συνήθως μόνος / Αρχείο του ιδιοκτήτη).

Απαντήθηκε 09/05/2010 στις 03:54
πηγή χρήστη

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