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

find path distance using set of points in the path

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

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

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

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

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

该公式使用内置的 zip 函数来获取点对,切片 [1:] 表示点对是 coordinates 列表中的连续点,您的earth_distance 函数计算两点之间的距离,sum 将它们加在一起。这是解决您问题的 pythonic 方法。

这是一种与其他语言执行此操作的方式更相似的方式,但仍在 Python。

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)

或者这个:

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