MKCoordinateSpan和CLLocationCoordinate2D有什么区别

tur*_*tle 7 core-location mapkit ios

我正在阅读示例MapKitCoreLocation框架示例.我发现这两个结构(MKCoordinateSpanCLLocationCoordinate2D)在声明中是相似的.这些功能有何不同,有人可以请一个例子(使用两者)来清除它们的含义.

谢谢!

mat*_*way 26

MKCoordinateSpan定义在地图上显示的纬度和经度方向上的跨度,即三角形.然后,您可以定义要在地图上显示的区域.

CLLocationCoordinate2D 在纬度和经度坐标系中定义单个点.

例如:

|<---- deltaLat  ---->|
|---------------------|---
|                     | |
|                     | |
|                     | |
|                     | |
|          +          |deltaLon
|      (lat,lon)      | |
|                     | |
|                     | |
|                     | |
|---------------------|---
Run Code Online (Sandbox Code Playgroud)

在这里你可以想象一个中心点(lat,lon),你有一个deltaLat和一个deltaLon.

因此,(lat,lon)将是一个CLLocationCoordinate2DdeltaLat, deltaLon将形成MKCoordinateSpan.

你是对的,两个结构都以相同的方式定义,但这在两个不同结构具有不同语义的情况下很常见,因此就像你发现的那样单独定义.


Can*_*pus 6

MKCoordinateSpan被解释为delta值,而CLLocationCoordinate2D被解释为一个.

例如,假设您要定义一个圆形区域,您将定义一个中心点及其周围的半径.

MapKit你定义一个矩形区域通过MKCoordinateRegion.中心点是CLLocationCoordinate2D(latitudelongitude- 都是typedef double)和垂直和水平delta由MKCoordinateSpan(latitudeDeltalongitudeDelta- 都是typedef double)