2010-07-01 13 views
12

Ich habe eine MKMapView, mit der der Benutzer die Karte scrollen kann. Später möchte ich den Breiten- und Längengrad des Punktes in der Mitte der Karte sehen, kann aber keinen einfachen Weg finden, dies zu tun. Im Moment versuche ich, so etwas wie:Wie komme ich in den Mittelpunkt einer MKMapView-Karte?

CLLocationCoordinate2D centre = [locationMap convertPoint:locationMap.center toCoordinateFromView:locationMap]; 
txtLatitude.text = [NSString stringWithFormat:@"%f",centre.latitude]; 
txtLongitude.text = [NSString stringWithFormat:@"%f",centre.longitude]; 

Aber es funktioniert nicht - sowohl Breiten- und Längen beide kommen als Null. Ich wäre dankbar für irgendwelche Ideen, die jemand haben könnte!

==============

- Update 1-

Oh. Wenn ich die Zeile wie unten vorgeschlagen hinzufüge: "0 (null)".

in meine Methoden Datei
#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 
#import <CoreLocation/CoreLocation.h> 

IBOutlet MKMapView *locationMap; 

@property (nonatomic, retain) IBOutlet MKMapView *locationMap; 

und die folgende: Ich habe folgendes in meinem Kopf (unter anderem) bekam

@synthesize locationMap; 

Dies wird ohne Warnungen oder Fehler derzeit kompilieren. Ich frage mich, ob ich etwas Offensichtliches verpasst habe?

Antwort

38

Was ist mit der centerCoordinate Eigenschaft?

heiße

CLLocationCoordinate2D centre = [locationMap centerCoordinate]; 

Wenn die centerCoordindate Eigenschaft alle gleich 0 ist, prüfen Sie, ob Sie einen gültigen locationMap Zeiger haben - Objective-c Sie Nachrichten auf Null ohne Fehler senden lassen!

Versuchen NSLog(@"%@", locationMap); - wenn das Null ausgibt, haben Sie wahrscheinlich die MapLocation zu einem MKMapView im Interface Builder verbinden vergessen;)

+0

Ich habe versucht, das auch - kehrt auch Null. – Haydn

+0

Ist locationMap ein gültiger Zeiger - was bedeutet __NSLog (@ "% @", locationMap); __ sagen? – deanWombourne

+0

Danke - das Protokoll gibt "(null)" - siehe Update oben. – Haydn

Verwandte Themen