计算距离另一个坐标一定距离的位置坐标

时间:2012-04-25 01:31:28

标签: iphone mkmapview mapkit cllocation

我有一个CLLoctionCoordinate2D,我想知道这些点离它的距离是多少。例如,让我们使用100英里。所以我想计算距离它的北,南,东,西100英里的点。

东西方很容易。我将两个坐标转换为MKMapPoints并使用distanceInMeters * MKMapPointsPerMeterAtLatitude(latitude)。这适用于东西方,因为纬度是恒定的。

但是,这对北方和南方都不起作用。在北方,它低估了,在南方,它低估了(因为MKMapPointsPerMeterAtLatitude在你移动时正在改变)。我怎样才能为北方和南方计算这些点?

2 个答案:

答案 0 :(得分:2)

每度纬度有60海里。经度也是如此,但仅限于赤道。要计算以海里为单位的经度距离,请将经度乘以经度* 60nm * cos(以弧度表示的纬度)。

在lat lon中计算你的新点(向北100英里,向南100英里等),而不是MKMapPoints,然后将你的lat / lon(CLLocationCoordinate2D?)点转换为MKMapPoints。

答案 1 :(得分:0)

纬度线始终是一个恒定的角度,从地球的核心测量,这是他们的观点。所以你需要做的是计算它们相距多远的距离,然后使用它来获得100英里的南北,然后获得地图点。地球表面距离的公式将在某处在线,可能以米或公里为单位。