Excel公式使用lat / lon坐标计算多个点之间的距离

时间:2014-08-27 17:59:46

标签: excel formula

我目前正在制作一个包含两个表的模拟数据库模式:BookingWaypoint

  • 预订存储出租车预订信息。

enter image description here

  • Waypoint存储旅途中的接送点和拉锁位置。每个序列都是旅途中的一站。

enter image description here

如何在Excel中计算每次行程中不同站点之间的距离(使用lat / lon数据)?

有没有办法在Excel中以编程方式定义它,即可以将公式放入mileage列(Booking表),查找匹配的序列(通过bookingId )在Waypoint表中进行该旅程并返回结果?

示例1:

2站的旅程:

1   1   1   MK4 4FL, 2, Levens Hall Drive, Westcroft, Milton Keynes 52.002529   -0.797623
2   1   2   MK2 2RD, 55, Westfield Road, Bletchley, Milton Keynes   51.992571   -0.72753

根据谷歌的4.1英里,在mileage表格的Booking列中输入id = 1

示例2:

3站的旅程:

6   3   1   MK7 7DT, 2, Spearmint Close, Walnut Tree, Milton Keynes 52.017486   -0.690113
7   3   2   MK18 1JL, H S B C, Market Hill, Buckingham              52.000674   -0.987062
8   3   1   MK17 0FE, 1, Maids Close, Mursley, Milton Keynes        52.040622   -0.759417

根据谷歌的27.7英里,在mileage表格的Booking列中输入id = 3

4 个答案:

答案 0 :(得分:3)

如果你想找到两点之间的距离,只需使用这个公式,你就可以得到Km的结果,只需要转换成里程。

A点:LAT1,LONG1 B点:LAT2,LONG2

ACOS(COS(RADIANS(90-Lat1))* COS(RADIANS(90-Lat2))+ SIN(RADIANS(90-Lat1))* SIN(RADIANS(90-lat2))* COS(RADIANS(long1) -long2)))* 6371

此致

答案 1 :(得分:1)

直到最近,通过三角测量构建了精确的地图,这实际上是毕达哥拉斯定理的应用。对于任何一对坐标之间的距离,取x坐标差的平方和与y坐标的差的平方之和的平方根。然而,x和y坐标必须处于相同的单位(例如英里),其涉及分析纬度和经度值。这可能很复杂,因为经度的因素取决于纬度(在北极周围行走的距离比在赤道附近行走的要少)但在你的情况下,应该使用52 o North的因子。由此得出的结果(可能会被检查here)与您给出的示例差异大约20%(在第二种情况下,配对ID为6和7,并将结果添加到配对ID 7和8的结果中) )。

答案 2 :(得分:1)

由于您说准确性并不重要,并且假设距离很小(比如说小于1000英里),您可以使用loxodromic距离。

为此,计算出不同(dlat)和经度差(dlon)的差异。如果有任何机会(不太可能)你正在经过180度经线,请采用模数360º以确保经度的差异在-180º和180º之间。同时计算平均纬度(alat)。

然后计算:

distance= 60*sqrt(dlat^2 + (dlon*cos(alat))^2)

这个距离是海里。根据需要应用转化。

解释:这利用了这样一个事实,即根据定义,一个海里总是等于一分钟的纬度弧。余弦对应于经线在接近极点时彼此靠近的事实。剩下的就是应用毕达哥拉斯定理 - 它要求地球的相关部分是平坦的,这当然只是小距离的良好近似。

答案 3 :(得分:0)

这一切取决于距离和所需的精度。基于“地球局部平坦”模型的计算对于长距离而言不会提供很好的结果,但对于短距离而言可能没问题。假设地球是理想球体的模型(例如Haversine公式)不会产生测地线坡度结果。 有关更多详细信息,请参见https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid。 Vincenty公式是一种高精度(几毫米)的解决方案。对于我的Excel实现,请点击此处https://github.com/tdjastrzebski/Vincenty-Excel