【发布时间】:2014-08-27 17:59:46
【问题描述】:
我目前正在绘制一个包含两个表的模拟数据库架构:Booking 和 Waypoint。
- Booking 存储出租车预订信息。
- Waypoint 存储旅途中的接送点和经纬度位置。每个序列都是旅程中的一站。
如何在 Excel 中计算每次旅程中不同站点之间的距离(使用纬度/经度数据)?
有没有办法在 Excel 中以编程方式定义它,即,可以将公式放入 mileage 列(Booking 表),查找匹配序列(通过 bookingId)在Waypoint 表并返回结果?
示例 1:
两站的旅程:
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 英里,在Booking 表的mileage 列中输入,其中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 英里,在Booking 表中的mileage 列中输入id = 3
【问题讨论】:
-
虽然在地图上计算直线上的距离(“loxodromic 距离”)很容易,而在大圆上计算距离(“正交距离”)并不难,但计算陆地上相当准确的里程需要更多在表示路线的图上解决最小长度路径问题的复杂解决方案——这反过来又需要良好的路线数据库。我建议为此功能使用现成的专用软件,除非您真的不关心准确性。如果是这种情况,请告诉我,我会找到公式...我在某处有它们...
-
@jsalvata 感谢您回复我。准确性不是真正的问题:)
-
这是一个很好的链接:stackoverflow.com/questions/365826/…。一张海报提到了“haversine”,这是计算球体距离的公式的名称。谷歌“haversine excel”,你会得到一些结果。