2010-07-01 14 views
12

Kullanıcının haritayı kaydırmasına izin veren bir MKMapView var. Daha sonra, haritanın merkezindeki noktanın enlem ve boylamını almak istiyorum, ancak bunu yapmanın kolay bir yolunu bulamıyorum. Şu anda böyle bir şey çalışıyorum:Bir MKMapView haritasının merkezi nasıl alınır?

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

Ama işe yaramıyor - enlem ve boylam hem hem sıfır olarak çıkıyor. Kimsenin sahip olabileceği herhangi bir fikir için minnettar olurum!

============== - Güncelleme 1-

Ah. Aşağıda belirtildiği gibi

satırı eklerseniz, günlük "(null)" değerini gösterir. Ben (diğer şeyler arasında) benim başlığında şu var:

#import <UIKit/UIKit.h> 
#import <MapKit/MapKit.h> 
#import <CoreLocation/CoreLocation.h> 

IBOutlet MKMapView *locationMap; 

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

ve benim yöntemlerim dosyasında aşağıdaki:

@synthesize locationMap; 

Bu anda herhangi bir uyarı ya da hatasız derleme. Açık bir şey özledim mi merak etmeye başladın mı?

cevap

38

centerCoordinate özelliği nedir?

yani

CLLocationCoordinate2D centre = [locationMap centerCoordinate]; 

centerCoordindate özelliği tüm 0 ise, geçerli bir locationMap işaretçisi var olmadığını kontrol - nesnel-c herhangi hatasız nil mesaj göndermek izin verir!

NSLog(@"%@", locationMap); deneyin - o nil verir, muhtemelen Interface Builder bir MKMapView için mapLocation bağlamak için unuttuysanız, - döner yanı sıfır

+0

Ben de o denedim). – Haydn

+0

locationMap geçerli bir işaretçidir - ne yapar __NSLog (@ "% @", locationMap); __ say? – deanWombourne

+0

Teşekkürler - günlüğü "(null)" verir - yukarıdaki güncellemeye bakın. – Haydn

İlgili konular