我有一组坐标long和lat代表一条路径。
coordinates = [
[60, 58],
[63, 67],
[69, 82],
[74, 75],
[85, 73]
...
];
如何计算以米为单位的路径距离
答案 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)