Was ist der Unterschied zwischen MKCoordinateSpan und CLLocationCoordinate2D?

7

Ich habe das Beispielbeispiel von MapKit und CoreLocation framework durchgespielt. Ich habe diese beiden Strukturen ( MKCoordinateSpan und CLLocationCoordinate2D ) gefunden, die in der Deklaration ähnlich sind. Wie unterscheiden sich diese in der Funktionalität, kann jemand bitte ein Beispiel anführen (mit beiden) um ihre Bedeutungen zu klären.

Danke!

    
turtle 19.03.2012, 13:51
quelle

2 Antworten

22

MKCoordinateSpan definiert eine Spanne , d. h. ein Delta in der Breiten- und Längenrichtung, die auf einer Karte angezeigt wird. Zusammen mit einem Punkt können Sie dann eine Region definieren, die auf einer Karte angezeigt werden soll.

CLLocationCoordinate2D definiert einen einzelnen Punkt im Längen- und Breitengrad-Koordinatensystem.

Zum Beispiel:

%Vor%

Hier können Sie sich einen Mittelpunkt (lat,lon) vorstellen, über den Sie eine deltaLat und eine deltaLon haben.

Also wäre (lat,lon) ein CLLocationCoordinate2D und deltaLat, deltaLon würde ein MKCoordinateSpan bilden.

Sie haben recht, dass beide Strukturen auf die gleiche Weise definiert sind, aber das ist ziemlich üblich, wenn die zwei verschiedenen Strukturen unterschiedliche Semantiken haben und daher separat definiert werden, wie Sie es gefunden haben.

    
mattjgalloway 19.03.2012, 14:02
quelle
6

MKCoordinateSpan wird als Delta-Werte interpretiert, während CLLocationCoordinate2D als Punkt interpretiert wird.

Wenn Sie beispielsweise eine kreisförmige Region definieren möchten, definieren Sie einen Mittelpunkt und den Radius um diese herum.

In MapKit definieren Sie eine rechteckige Region von MKCoordinateRegion . Der Mittelpunkt ist ein CLLocationCoordinate2D ( latitude und longitude - beide typedef von double ) und ein vertikales und horizontales Delta von MKCoordinateSpan ( latitudeDelta und longitudeDelta - beide typedef von double )

    
Canopus 19.03.2012 14:06
quelle

Tags und Links