我有一个CLLoctionCoordinate2D
,我想知道这些点离它的距离是多少。例如,让我们使用100英里。所以我想计算距离它的北,南,东,西100英里的点。
MKMapPoints
并使用distanceInMeters
* MKMapPointsPerMeterAtLatitude(latitude)
。这适用于东西方,因为纬度是恒定的。
但是,这对北方和南方都不起作用。在北方,它低估了,在南方,它低估了(因为MKMapPointsPerMeterAtLatitude
在你移动时正在改变)。我怎样才能为北方和南方计算这些点?
答案 0 :(得分:2)
每度纬度有60海里。经度也是如此,但仅限于赤道。要计算以海里为单位的经度距离,请将经度乘以经度* 60nm * cos(以弧度表示的纬度)。
在lat lon中计算你的新点(向北100英里,向南100英里等),而不是MKMapPoints,然后将你的lat / lon(CLLocationCoordinate2D?)点转换为MKMapPoints。
答案 1 :(得分:0)
纬度线始终是一个恒定的角度,从地球的核心测量,这是他们的观点。所以你需要做的是计算它们相距多远的距离,然后使用它来获得100英里的南北,然后获得地图点。地球表面距离的公式将在某处在线,可能以米或公里为单位。