Jak mogę wziąć parę szerokość, długość i pływaków uzyskać MKMapView spadać szpilkę i wyświetlić lokalizację?

głosy
0

Biorąc pod uwagę parę pływa na szerokości i długości geograficznej oraz MapView, jak mogę dostać się do spadku MapView szpilkę w miejscu i „zoom” ekranu, aby wyświetlić lokalizację?

Czytałem przez niektóre tzw stanowisk i wszystkie one wydają się być o konkretnych aspektach, ale nie byłem w stanie „je razem” w głowie.

Dziękuję bardzo! -Szczery

Utwórz 08/05/2010 o 22:04
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Przykładowe aplikacji WorldCities pokazuje w jaki sposób można powiększyć do danej lokalizacji, ale to nie spadnie tam szpilkę. Kolejna aplikacja próbka nazywa MapCallouts robi szpilki drop ale nie powiększać.

Część zoom jest łatwe (patrz metoda didChooseWorldCity w WorldCities).

Aby umieścić pinezkę, trzeba wysłać wiadomość addAnnotation do MapView i wysłać go do obiektu, który implementuje protokół MKAnnotation. Więc najpierw trzeba utworzyć klasę, która implementuje MKAnnotation. Oto przykład nazywa 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

Teraz można zmodyfikować próbkę WorldCities dodając ten kod na początku metody animateToPlace:

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

worldCity.coordinate w aplikacji WorldCities jest tylko właściwością typu CLLocationCoordinate2D która ma dwa pola szerokości i długości geograficznej. Te dwa pływaki pójdzie tam.

Zauważ, że addAnnotation będzie po prostu umieścić kołek w mieście. Aby uzyskać animowany spada pin, masz również do wdrożenia metody viewForAnnotation i ustaw animatesDrop Tak. Zobacz przykład w MapViewController.m w MapCallouts. Również ustawić delegować MapView do gdziekolwiek metoda viewForAnnotation realizowany jest (zazwyczaj self / plik za Właściciel).

Odpowiedział 09/05/2010 o 03:54
źródło użytkownik

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