Jak mohu přijmout pár zeměpisná šířka, délka plováky a získat MKMapView upustit špendlík a zobrazení polohy?

hlasů
0

Vzhledem k tomu, dvojici plováků pro zeměpisné šířky a délky, a MapView, jak získám MapView upustit špendlík v dané lokalitě a „Zoom“ na obrazovku pro zobrazení polohy?

Četl jsem přes některé tzv míst a všichni se zdají být o konkrétních aspektech, ale já jsem nebyl schopen „dát dohromady“ v mé hlavě.

Díky moc! -Upřímný

Položena 08/05/2010 v 22:04
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

App ukázkové WorldCities ukazuje, jak můžete přiblížit na daném místě, ale neklesl špendlík tam. Další příklad aplikace s názvem MapCallouts dělá předčasného kolíky, ale to není zoom.

Součástí zoom je snadné (viz metoda didChooseWorldCity v WorldCities).

Chcete-li umístit špendlík, musíte poslat addAnnotation zprávu MapView a odeslat ji objekt, který implementuje protokol MKAnnotation. Takže nejprve je třeba vytvořit třídu, která implementuje MKAnnotation. Zde je příklad s názvem 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

Nyní můžete upravit ukázkové WorldCities přidáním tento kód na začátku způsobu animateToPlace:

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

worldCity.coordinate v aplikaci WorldCities je jen vlastnost typu CLLocationCoordinate2D který má dvě pole zeměpisné šířky a délky. Tyto dva plováky by tam jít.

Všimněte si addAnnotation bude jen dát kolík na město. Chcete-li získat animovaný zahazování pin, musíte také implementovat metodu viewForAnnotation a nastavit animatesDrop na YES. Podívejte se na příklad v MapViewController.m v MapCallouts. Také nastaven delegovat MapView, aby všude tam, kde je implementován způsob viewForAnnotation (obvykle spontánně / soubor Majitel).

Odpovězeno 09/05/2010 v 03:54
zdroj uživatelem

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