Как взять пару широта, долгота поплавков и получить MKMapView уронить булавку и отображать местоположение?

голоса
0

Учитывая пару поплавков для широты и долготы, и MapView, как я могу получить MapView отказаться булавку в месте, и «масштаб» экрана для отображения местоположения?

Я прочитал некоторые из SO постов и все они, как представляется, о конкретных аспектах, но я не в состоянии «положить их вместе» в моей голове.

Огромное спасибо! -Frank

Задан 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