2009-12-02 98 views
9

如何在MapKit中獲取地圖的左上角和右下角的經緯度? 我使用此代碼,但它無法正常工作。我應該如何解決它?如何在MapKit中獲取地圖的左上角和右下角的經緯度

MKCoordinateRegion region = [map region]; 

double topL,topG,bottomL,bottomG; 
//if latitude=55 and latitudeDelta=126 topL is 118 and it will be not at top, it will be at buttom of screen 
topL = region.center.latitude + region.span.latitudeDelta/2; 

topG = region.center.longitude - region.span.longitudeDelta/2; 

CLLocationCoordinate2D lt; 
lt.latitude=topL; 
lt.longitude=topG; 
annotation = [Annotation new]; 
annotation.coordinate = lt; 
annotation.title = @"Left"; 
[map addAnnotation:annotation]; 
[annotation release]; 
//if latitude=55 and latitudeDelta=126 bottomL is -7.23 and it will be not at bottom, it will be at above bottom of screen 
bottomL = region.center.latitude - region.span.latitudeDelta/2; 


bottomG = region.center.longitude + region.span.longitudeDelta/2; 

CLLocationCoordinate2D rb; 
rb.latitude=bottomL; 
rb.longitude=bottomG; 
annotation = [Annotation new]; 
annotation.coordinate = rb; 
annotation.title = @"Right"; 
[map addAnnotation:annotation]; 
[annotation release]; 

回答

24

還有就是要得到這些座標更容易的方法......使用點你的看法,並轉換:

CLLocationCoordinate2D topLeft, bottomRight; 
topLeft = [mapView convertPoint:CGPointMake(0, 0) toCoordinateFromView:mapView]; 
CGPoint pointBottomRight = CGPointMake(mapView.frame.size.width, mapView.frame.size.height); 
bottomRight = [mapView convertPoint:pointBottomRight toCoordinateFromView:mapView]; 
+0

謝謝,它工作!:) – 2009-12-02 09:27:12

2

我使用Swift2.0,我創建extensionMKMapView

extension MKMapView { 
    func topLeftCoordinate() -> CLLocationCoordinate2D { 
     return convertPoint(CGPoint.zero, toCoordinateFromView: self) 
    } 

    func bottomRightCoordinate() -> CLLocationCoordinate2D { 
     return convertPoint(CGPoint(x: frame.width, y: frame.height), toCoordinateFromView: self) 
    } 
} 
相關問題