Iphone 计算距离另一个坐标一定距离的位置坐标
我有一个Iphone 计算距离另一个坐标一定距离的位置坐标,iphone,mkmapview,mapkit,cllocation,Iphone,Mkmapview,Mapkit,Cllocation,我有一个cllocationcoordinate2d,我想计算出在给定距离之外的点是什么。例如,让我们使用100英里。所以我想用计算机计算出它北面、南面、东面和西面100英里处的点 东西方都很容易。我将两个坐标转换为MKMapPoints,并使用distanceInMeters*mkmappointspermeteralatitude(纬度)。因为纬度是恒定的,所以这对东西方都适用 然而,这不适用于北方和南方。在北部,它低估了,而在南部,它低估了(因为mkmappointspermeterala
cllocationcoordinate2d
,我想计算出在给定距离之外的点是什么。例如,让我们使用100英里。所以我想用计算机计算出它北面、南面、东面和西面100英里处的点
东西方都很容易。我将两个坐标转换为MKMapPoints
,并使用distanceInMeters
*mkmappointspermeteralatitude(纬度)
。因为纬度是恒定的,所以这对东西方都适用
然而,这不适用于北方和南方。在北部,它低估了,而在南部,它低估了(因为
mkmappointspermeteralatitude
随着移动而变化)。我怎样才能计算出南北方向的这些点呢?纬度线之间的夹角总是恒定的,从地核开始测量,地核就是它们的点。所以你需要做的是计算出它们之间的距离,然后用它得到南北100英里,然后得到相应的地图点。地球表面距离的公式将在某处在线,可能以米或公里为单位。每个纬度有60海里。这也适用于经度,但仅限于赤道。要计算以经度为单位的距离(以海里为单位),请将以度为单位的距离乘以经度*60nm*cos(以弧度为单位的纬度)
用lat-lon(而不是MKMapPoints)计算新点(北100英里、南100英里等),然后将lat/lon(CLLocationCoordinate2D?)点转换为MKMapPoints。不能使用CLLocation distance fromLocation:method循环并检查实际距离吗?这在电脑循环中应该不会太贵。我考虑过,但我希望能找到更优雅的东西。