Wie links oben und rechts unten Breite und Länge von Karte in MapKit bekommen

stimmen
9

Wie links oben und rechts unten Breite und Länge von Karte in MapKit zu bekommen? Ich benutze diesen Code, aber es funktioniert nicht richtig. Wie soll ich es beheben?

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];
Veröffentlicht am 02/12/2009 um 10:05
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
25

Es gibt eine viel einfacher Ansatz, um diese Koordinaten bekommen ... Verwenden Sie die Punkte aus Ihrer Sicht und konvertieren:

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];
Beantwortet am 02/12/2009 um 10:13
quelle vom benutzer

stimmen
2

Ich verwende Swift2.0, habe ich extensionfürMKMapView

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)
    }
}
Beantwortet am 24/01/2016 um 15:46
quelle vom benutzer

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