Nasıl enlem, boylam yüzen bir çift alıp MKMapView raptiye ve yerini göstermeye alabilirim?

oy
0

enlem ve boylam ve MapView için yüzen bir çift göz önüne alındığında, nasıl bir konumda pimi ve zoom konumunu görüntülemek için ekran düşmesi MapView alabilirim?

Ben SO mesajların bazıları baştan sona kadar okuduktan ve hepsi bu belirli yönleriyle ilgili olduklarını, ancak kafamda onları biraraya koymak mümkün olmamıştır.

Çok teşekkürler! -Frank

Oluştur 08/05/2010 saat 22:04
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

Örnek uygulaması WorldCities belirli bir konuma yakınlaştırma yapabilirsiniz ama orada bir raptiye gelmez gösterir. Denilen bir başka örnek uygulaması MapCallouts damla işaretçilerine yapar ama Büyütmek etmez.

yakınlaştırma kısmı (WorldCities içinde didChooseWorldCity yöntemine bakın) kolaydır.

raptiye için, MapView için addAnnotation mesaj gönder ve ona MKAnnotation protokolünü uygulayan bir nesne göndermek zorunda. Bunun için ilk önce MKAnnotation uygulayan bir sınıf oluşturmak gerekir. İşte MyMapPin denilen bir örnek:

//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

Şimdi animateToPlace yöntemin başında bu kodu ekleyerek WorldCities örnek değiştirebilir:

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

WorldCities uygulamasında worldCity.coordinate sadece iki alan enlem ve boylam vardır tipi CLLocationCoordinate2D bir özelliktir. İki yüzer oraya gider.

addAnnotation şehrin hemen bir iğne koymak unutmayın. animasyonlu bırakarak pimini almak için ayrıca YES viewForAnnotation yöntemi ve set animatesDrop uygulamak zorunda. MapCallouts içinde MapViewController.m bir örneğe bakın. Ayrıca viewForAnnotation yöntemi uygulanmaktadır her yere MapView en temsilci ayarlamak (genellikle kendiliğinden / dosya'nın sahibi).

Cevap 09/05/2010 saat 03:54
kaynak kullanıcı

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