擅长:python、mysql、java
<p>我不是python的高手,所以我相信你可以优化它,但是一般的想法是,你不需要调用递归函数,你只需要做一个while循环,直到你的条件得到满足,在循环中,你可以修改变量,就像你把它们作为参数发送给递归函数一样。你知道吗</p>
<pre><code>def move_along_path(self, points, distance, index=0):
if index < len(points) - 1:
point1_tuple = (points[index]['lat'], points[index]['lng'])
point2_tuple = (points[index + 1]['lat'], points[index + 1]['lng'])
distance_to_next_point = geopy.distance.geodesic(point1_tuple, point2_tuple).m
while distance > distance_to_next_point:
point1_tuple = (points[index]['lat'], points[index]['lng'])
point2_tuple = (points[index + 1]['lat'], points[index + 1]['lng'])
# Use geodesic method to get distance between points in meters
distance_to_next_point = geopy.distance.geodesic(point1_tuple, point2_tuple).m
distance -= distance_to_next_point
index++
return self.move_towards(point1_tuple, point2_tuple, distance)
else
return None
</code></pre>