Hoe neem ik een paar van de breedtegraad, lengtegraad praalwagens en krijgt de MKMapView om een ​​pin te laten vallen en de locatie weer te geven?

stemmen
0

Gegeven een paar drijvers voor de lengte- en breedtegraad, en een MapView, hoe krijg ik de MapView om een ​​pin in de locatie en zoom op het scherm om de locatie weer te laten vallen?

Ik heb door enkele van de SO berichten te lezen en ze lijken te zijn over bepaalde aspecten van dit, maar ik heb niet in staat om zet ze samen in mijn hoofd geweest.

Heel erg bedankt! -Frank

De vraag is gesteld op 08/05/2010 om 22:04
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

Het monster app WorldCities laat zien hoe je in een bepaalde locatie kunt inzoomen, maar het is niet een speld neer te zetten. Een ander monster app genaamd MapCallouts doet daling pinnen, maar het niet te zoomen.

De zoom-deel is makkelijk (zie didChooseWorldCity methode in WorldCities).

Een pen vallen, moet de addAnnotation boodschap aan de Mapview verzenden en versturen een object dat de MKAnnotation protocol implementeert. Dus eerst moet je een klasse die MKAnnotation implementeert creëren. Hier is een voorbeeld genoemd 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

Nu kon de WorldCities monster te wijzigen door het toevoegen van deze code aan het begin van de animateToPlace methode:

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

worldCity.coordinate in de WorldCities app is gewoon een eigenschap van het type CLLocationCoordinate2D die twee velden lengte-en breedtegraad. De twee drijvers zou naar binnen gaan.

Let op de addAnnotation zal gewoon een pin aan de stad. Om een ​​geanimeerd dropping pin te krijgen, moet je ook de viewForAnnotation werkwijze en stel animatesDrop op JA te implementeren. Bekijk een voorbeeld in MapViewController.m in MapCallouts. Stel ook afgevaardigde van de Mapview's naar de plaats waar de viewForAnnotation methode wordt uitgevoerd (meestal zelf / Bestand van de eigenaar).

antwoordde op 09/05/2010 om 03:54
bron van user

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