2016-04-18 3 views
0

So habe ich eine App mit einem MapView und ich verwende CoreData, um Anmerkungen zu Orten in der Nähe der Mitte der Karte zu laden. Derzeit definiere ich den lat/long Bereich statisch wie folgt aus:NSPredate zur Begrenzung des Längenbereichs der Breite nach MapView Grenzen

var fetchDataPredicates = [NSPredicate]() 
fetchDataPredicates.append(NSPredicate(format: "itemLatitude BETWEEN {%f,%f} AND itemLongitude BETWEEN {%f,%f}", (latitude-0.10), (latitude+0.10), (longitude-0.10), (longitude+0.10))) 

Dies ist jedoch eine ziemlich schlechte Lösung. Wenn der Benutzer in der Karte weit herausgezoomt ist, würden die Daten nur einen kleinen Teil davon abdecken.

Hat jemand gute Ideen, wie man den Breiten-/Längenbereich entsprechend den MapView-Grenzen dynamisch anpasst?

Danke!

Antwort

1

Eine mögliche Lösung wäre, die Kartenansicht nach region zu fragen. Das ist ein MKCoordinateRegion die

  • CLLocationCoordinate2D center
  • MKCoordinateSpan span

Die Spannweite umfasst Längen- und Breitengrad Deltas, die genau aussehen beinhaltet, was Sie brauchen.

+0

MKCoordinateSpan sieht vielversprechend aus. Könnten Sie mir ein kurzes Beispiel geben, wie die Lat/Long Deltas verwendet werden können? – ardevd

+0

Nvm. Ich habe es gelöst! Vielen Dank. – ardevd

Verwandte Themen