在路径中使用分集找到路径距离

问题描述 投票:-2回答:1

我有一组很长的坐标和纬度代表的路径。

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

我怎么能计算米的路径距离

math geometry distance
1个回答
0
投票

您的评论,你可以找到通过经度和纬度给出两点之间的地球表面上的距离说。比方说,你有能做到这一点,可以用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把他们都加到一起。这是解决你的问题一个Python的方式。

这里是一个方式,是更类似于其他语言将如何做到这一点,但仍然在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)
© www.soinside.com 2019 - 2024. All rights reserved.