探索Map Kit:从基础计算到应用构建
1. 复杂的数学计算
1.1 计算一度经度的距离
计算给定纬度下一度经度的距离,公式为:
$\frac{\pi}{180°} \times$ 地球半径 $\times \cos$(纬度)
地球半径约为 3963.1676 英里(6378.1 公里)。以下是计算特定纬度下一度经度距离的代码示例:
var longitudeMiles: Double = ((M_PI/180.0) * 3963.1676 * cos(latitude))
var longitudeKilometers: Double = ((M_PI/180.0) * 6378.1 * cos(latitude))
1.2 适应纵横比
除非地图视图是完美的正方形,否则无法在中心的四个边上都精确显示 1 公里。如果地图视图更宽, longitudeDelta 需要大于 latitudeDelta ;如果更高,则相反。
MKMapView 类有一个实例方法 regionThatFits 可调整坐标区域以匹配地图视图的纵横比:
var adjustedRegion: MKCoordinateRegion = mapView.regionThatFits(viewRegion)
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



