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!
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.
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
)
Tags und Links ios core-location mapkit