纬度/经度距离计算

Col*_*lin 5 iphone gps distance latitude-longitude

关于Lat/Long计算的快速问题.

我想取一个值集,例如Lat:55.123456 Long -6.123456并计算出任意距离之外的四个点.

在此输入图像描述

作为给定的方格,我想在左侧和右侧计算出Latitude的值.因此红线距离起点1.5公里.同样,对于经度,蓝线距起点1.5km.输出将是4点,所有距离以千米为单位.

简而言之:纬度+ Y =纬度值X公里之外

目前正在与iPhone合作,并进行非常粗略的数据库计算.

编辑:只是为了澄清,距离太短,曲率(因此准确性)不是问题.

Col*_*lin 6

在OBJ-C中,这应该是一个不错的解决方案:

float r_earth = 6378 * 1000; //Work in meters for everything
float dy = 3000; //A point 3km away
float dx = 3000; //A point 3km away
float new_latitude  = latitude  + (dy / r_earth) * (180 / M_PI);
float new_longitude = longitude + (dx / r_earth) * (180 / M_PI) / cos(latitude * 180/M_PI);
Run Code Online (Sandbox Code Playgroud)


beg*_*718 3

那么,对于距离相对较小(小于 100 公里)的粗略计算,您可以假设每度纬度有 40_000_000/360=111 111 米,每度经度有 111 111*cos(latitude) 米。这是因为米被定义为巴黎子午线的 1/40_000_000 部分;)。

否则,您应该使用大圆距离,如评论中所述。为了获得高精度,您还需要考虑到地球是略扁的椭球体而不是球体。