使用路径中的点集查找路径距离

时间:2019-02-02 12:53:37

标签: math geometry distance

我有一组坐标long和lat代表一条路径。

coordinates = [
    [60, 58],
    [63, 67],
    [69, 82],
    [74, 75],
    [85, 73]
...
];

如何计算以米为单位的路径距离

1 个答案:

答案 0 :(得分:0)

您在评论中说,您可以找到由经度和纬度给出的两点之间的地球表面距离。假设您有一个可以执行此操作的函数,可以使用earth_distance(pt1, pt2)进行调用。您可以使用Python来添加连续点之间的所有距离,

total_distance = sum(earth_distance(pt1, pt2)
                     for pt1, pt2 in zip(coordinates, coordinates[1:]))

该公式使用内置的zip函数获取成对的点,切片[1:]表示成对的点是coordinates列表中的连续点,即{{ 1}}函数可计算两个点之间的距离,earth_distance可将它们全部加在一起。这是解决问题的有效方法。

这是一种与其他语言更相似的方法,尽管仍然使用Python。

sum

或者这个:

total_distance = 0
pt2 = coordinates[0]
for ndx in range(1, len(coordinates)-1):
    pt1 = pt2
    pt2 = coordinates[ndx]
    total_distance += earth_distance(pt1, pt2)