MKCoordinateSpan和CLLocationCoordinate2D有什么区别?
我正在通过MapKit
和CoreLocation
框架的示例。 我发现这两个结构( MKCoordinateSpan
和CLLocationCoordinate2D
)在声明上是相似的。 这些function有什么不同,有人可以请一个例子(使用两个)来清除它们的含义。
谢谢!
MKCoordinateSpan
在纬度和经度方向上定义一个跨度 ,即三angular洲,以显示在地图上。 随着一个点,你可以定义一个区域显示在地图上。
CLLocationCoordinate2D
在纬度和经度坐标系统中定义单个点。
例如:
|<---- deltaLat ---->| |---------------------|--- | | | | | | | | | | | | | + |deltaLon | (lat,lon) | | | | | | | | | | | |---------------------|---
在这里你可以想象一个中心点(lat,lon)
,你有一个deltaLat
和一个deltaLon
。
所以(lat,lon)
将是CLLocationCoordinate2D
和deltaLat, deltaLon
将形成MKCoordinateSpan
。
你说得对,两个结构都是以相同的方式定义的,但是在两个不同的结构具有不同的语义的情况下,这是相当普遍的,因此像你发现的那样分开定义。
MKCoordinateSpan
被解释为delta值 ,而CLLocationCoordinate2D
被解释为一个点 。
例如,假设您要定义一个圆形区域,您将定义一个中心点以及其周围的半径。
在MapKit
,通过MKCoordinateRegion
定义一个矩形区域 。 中心点是一个CLLocationCoordinate2D
( latitude
和longitude
– 都是double的typedef)和MKCoordinateSpan
一个垂直和水平三angular洲( latitudeDelta
和longitudeDelta
– 都是double的typedef)