2009-12-02 13 views
9

¿Cómo obtener la latitud y la longitud del mapa en MapKit izquierda-arriba y derecha-abajo? Uso este código, pero no funciona correctamente. ¿Cómo debería arreglarlo?Cómo obtener la latitud y la longitud del mapa en la parte superior e inferior izquierda de 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]; 

Respuesta

24

Hay un enfoque mucho más fácil de conseguir esas coordenadas ... Use los puntos de vista y, a convertir:

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

Thanks, it work! :) –

2

estoy usando Swift2.0, creé extension para MKMapView

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) 
    } 
} 
Cuestiones relacionadas