MKCoordinateSpan和CLLocationCoordinate2D有什么区别?

我正在通过MapKitCoreLocation框架的示例。 我发现这两个结构( MKCoordinateSpanCLLocationCoordinate2D )在声明上是相似的。 这些function有什么不同,有人可以请一个例子(使用两个)来清除它们的含义。

谢谢!

MKCoordinateSpan在纬度和经度方向上定义一个跨度 ,即三angular洲,以显示在地图上。 随着一个点,你可以定义一个区域显示在地图上。

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

例如:

 |<---- deltaLat ---->| |---------------------|--- | | | | | | | | | | | | | + |deltaLon | (lat,lon) | | | | | | | | | | | |---------------------|--- 

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

所以(lat,lon)将是CLLocationCoordinate2DdeltaLat, deltaLon将形成MKCoordinateSpan

你说得对,两个结构都是以相同的方式定义的,但是在两个不同的结构具有不同的语义的情况下,这是相当普遍的,因此像你发现的那样分开定义。

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

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

MapKit ,通过MKCoordinateRegion定义一个矩形区域 。 中心点是一个CLLocationCoordinate2Dlatitudelongitude – 都是double的typedef)和MKCoordinateSpan一个垂直和水平三angular洲( latitudeDeltalongitudeDelta – 都是double的typedef)