我一直在尝试根据给定的纬度和经度来计算两个位置之间的距离。
变量是随机的,并且来自生成的语义注释。
for coordinates in g.objects(None, predicate=URIRef('http://www.w3.org/ns/prov#generatedAtCoordinates')):
final_coordinates = coordinates
data = final_coordinates.split(",")
latitude = float(data[0])
longitude = float(data[1])
calc_distance = (latitude, longitude)
print(geopy.distance.distance(calc_distance, calc_distance).km)
calc_distance
的打印方式是:
(41.40254048829099, 2.095129446086901)
(41.409459057215216, 2.0941780489196367)
(41.40506757803259, 2.0903966716404754)
(41.40081272870648, 2.0936534707551835)
(41.40569962731158, 2.0947062169907373)
(41.40513399283631, 2.09682546591496)
这些是随机生成的值,我希望从现在开始。我正在使用geopy距离计算器。
我想我做不到,因为我一直都在同一个循环中,如何定义全局变量,将其保存在列表中,然后遍历该列表以计算Python中的距离? / p>
很抱歉,这个问题太基本了,或者不知所措,但是我的大脑停了下来,我无法思考。
原始脚本是:
import geopy.distance
coords_1 = (41.43737599306035, 2.1302325410348084)
coords_2 = (41.42535528994254, 2.1898592767949556)
print(geopy.distance.distance(coords_1, coords_2).km)
因此,它将从第一个值开始,然后是第一和第二之间的距离,然后是第二和第三,然后是第三和第四等等。
答案 0 :(得分:0)
解决此问题的一种简单方法是将所有点附加到列表中。然后根据需要分离列表,假设您想要相邻点的距离。然后遍历列表以获取每两个的距离。像这样:
distance_list = []
for coordinates in g.objects(None, predicate=URIRef('http://www.w3.org/ns/prov#generatedAtCoordinates')):
final_coordinates = coordinates
data = final_coordinates.split(",")
latitude = float(data[0])
longitude = float(data[1])
calc_distance = (latitude, longitude)
print(geopy.distance.distance(calc_distance, calc_distance).km)
distance_list + geopy.distance.distance(calc_distance, calc_distance).km
for dis_1, dis_2 in zip(distance_list, distance_list[1:])[::2]
# Split the list into groups of two
print(geopy.distance.distance(dis_1, dis_2).km)
Here是如何将列表分成几对的示例。