Wie kann ich ein Paar von Breitengrad, Längengrad Schwimmer und erhalte die MKMapView einen Stift fallen zu lassen und die Position angezeigt werden?

stimmen
0

Bei einem Paar von Schwimmern für Breiten- und Längengrad und eine MapView, wie bekomme ich die MapView einen Stift in der Lage und „Zoom“ auf dem Bildschirm fällt die Lage anzuzeigen?

Ich habe einige der SO Beiträge lesen und sie scheinen alle über bestimmte Aspekte davon zu sein, aber ich habe nicht in der Lage gewesen, „sie zusammen“ in meinem Kopf.

Vielen Dank! -Frank

Veröffentlicht am 08/05/2010 um 22:04
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Das Beispiel - App Worldcities zeigt , wie Sie in einen bestimmten Ort vergrößern können , aber es ist kein Stift dort ab. Eine weitere Probe App namens MapCallouts tut Drop Pins aber es heran nicht.

Der Zoom-Teil ist einfach (siehe didChooseWorldCity Methode in Worldcities).

Um eine Stecknadel fallen, müssen Sie die AddAnnotation Mitteilung an den mapview senden und ihm ein Objekt senden, die das MKAnnotation Protokoll implementiert. So müssen Sie zuerst eine Klasse erstellen, die MKAnnotation implementiert. Hier ist ein Beispiel genannt 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

Nun könnte man die Probe Worldcities ändern, indem Sie diesen Code am Anfang der animateToPlace Methode fügt hinzu:

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

worldCity.coordinate in der Worldcities App ist nur eine Eigenschaft des Typs CLLocationCoordinate2D, die zwei Felder Breite und Länge hat. Die beiden Schwimmer würde dorthin gehen.

Beachten Sie die AddAnnotation wird nur einen Stift setzen auf die Stadt. Um einen animierten Abwurf Stift zu bekommen, müssen Sie auch die viewForAnnotation Methode und setzen animatesDrop auf YES umzusetzen. Sehen Sie ein Beispiel in MapViewController.m in MapCallouts. Auch setzen die Delegierten mapview, wo immer die viewForAnnotation Methode implementiert ist (in der Regel selbst / Datei Besitzer).

Beantwortet am 09/05/2010 um 03:54
quelle vom benutzer

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