Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 计算距离另一个坐标一定距离的位置坐标_Iphone_Mkmapview_Mapkit_Cllocation - Fatal编程技术网

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循环并检查实际距离吗?这在电脑循环中应该不会太贵。我考虑过,但我希望能找到更优雅的东西。