Ich verwende diesen Code, um die Region von MKMapView
so zu setzen, dass sie um pin
herum zentriert ist und gezoomt ist, um einen ungefähren 10km-Bereich anzuzeigen.MKMapView setRegion: Absturz am Rand der Welt
CLLocationAccuracy accuracy = kCLLocationAccuracyKilometer;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(pin.coordinate, accuracy * 10.0f, accuracy * 10.0f);
[self.mapSubView setRegion:region animated:NO];
Wenn der Code mit einem Stift des Breitenkoordinate läuft -90, Längengrad -58,359001159667969 die region
wird, wie gezeigt erzeugt:
Ein Absturz auftritt, wenn die mapSubView
gezogen wird: -
Beenden der App wegen nicht abgefangener Ausnahme 'NSInvalidArgumentException', Grund: ' Ungültige Region < Zentrum: -90,00000000, -58,35900116 Spannweite: 0,08953039, 1462142065660629,00000000 > '
Mein erster Versuch, diese für "Kante" lat/long (-90, +90 zu überprüfen war Festsetzung, -180, +180), wodurch das Problem gelöst wurde. Wenn sich der Breitengrad jedoch auf -89.99999 ändert, wird das Problem zurückgegeben.
ich dies zu raten ist auf eine Kombination aus dem Breitengrad Wesen -90 und/oder die Länge Delta Region Spannweite so groß ist in einer Region führt, die wirksam ist „nicht von dieser Welt“: p
Irgendein Rat, wie man die Karte um einen Stift an irgendeiner Koordinate zentriert, einen ~ 10km Bereich zeigend, ohne diesen Abbruch würde sehr geschätzt werden.
Überprüfen der Delta-Werte gegen 'NSNotFound' nicht funktioniert, Siehe diese Konsolenausgabe: - 'Longitude span: 1462142065660629.000000 vs NSNotFound: 2147483647' –
Ja, Sie haben Recht. Mein Fehler aber ich denke das ist auch irgendwo ein MAX Wert definiert. Eine sehr schlechte Arbeit eine Runde ist zu testen, ob die Spannweite ein absurder Wert ist. Ich habe in den Apple-Entwicklerforen nach diesem Problem gesucht, aber ich habe nichts gefunden. Sorry, aber jetzt weiß ich nicht mehr. –