Cum pot lua o pereche de, flotoare latitudine longitudine și pentru a obține MKMapView să renunțe la un cod PIN și afișa locația?

voturi
0

Având în vedere o pereche de flotoare pentru latitudinea și longitudinea, și un MapView, cum pot obține MapView să renunțe la un pin în locația și „zoom“ pe ecran pentru a afișa locația?

Am citit prin unele dintre posturile așa și toate acestea par a fi cu privire la aspecte specifice ale acestui fapt, dar nu am fost în stare să „le-a pus împreună“ în capul meu.

Multumesc foarte mult! -Sincer

Întrebat 08/05/2010 la 22:04
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Specimenele app WorldCities arată cum puteți mări într - o anumită locație , dar nu picătură un cod PIN acolo. O altă aplicație eșantion numit MapCallouts face pini picătură , dar nu zoom.

Partea de zoom este ușor (a se vedea metoda didChooseWorldCity în WorldCities).

Pentru a elimina un cod PIN, trebuie să trimită mesajul addAnnotation la mapview și trimite un obiect care implementează protocolul MKAnnotation. Deci, mai întâi trebuie să creați o clasă care implementează MKAnnotation. Iată un exemplu numit 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

Acum ai putea modifica proba WorldCities prin adăugarea acestui cod la începutul metodei animateToPlace:

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

worldCity.coordinate în aplicația WorldCities este doar o proprietate de tip CLLocationCoordinate2D care are două câmpuri de latitudine și longitudine. Cele două plutitoare ar merge acolo.

Notă addAnnotation va pune doar un cod PIN la oraș. Pentru a obține un cod PIN animat cădere, trebuie, de asemenea, să pună în aplicare metoda viewForAnnotation și setați animatesDrop la YES. A se vedea, de exemplu, în MapViewController.m în MapCallouts. De asemenea, setați delegatul mapview la ori de câte ori este pus în aplicare metoda viewForAnnotation (de obicei auto / fișier Proprietarul).

Publicat 09/05/2010 la 03:54
sursa de către utilizator

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