繁体   English   中英

地理距离的格式无效

[英]Invalid format for geopy distance

我从 python 开始,我看到我的城市坐标没有使用,这使我出现格式错误,因为它没有打印城市的坐标。

from geopy.distance import geodesic


ville1 = input("Entrez la ville de départ : ")
ville2 = input("Entrez la ville d'arrivée : ")


Paris = (48.864716, 2.349014)
Bordeaux = (44.835241, -0.573289)
Marseille = (43.301631, 5.373301)
Lyon = (45.760346, 4.837617)
Toulouse = (43.606225, 1.459017)
Nice = (43.714026, 7.259467)
Nantes = (47.226733, -1.560644)
Montpellier = (43.606620, 3.869740)
Strasbourg = (48.561351, 7.753844)
Rennes = (48.105276, -1.688280)

print(ville1)
print(ville2)
print(geodesic(ville1, ville2).kilometers)

在控制台上

Entrez la ville de départ : Bordeaux
Entrez la ville d'arrivée : Paris
Bordeaux
Traceback (most recent call last):
Paris
  File "D:/Documents/Ynov/Projet_Camion/calcul.py", line 11, in <module>
    print(geodesic(ville1, ville2).kilometers)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 389, in __init__
    super(geodesic, self).__init__(*args, **kwargs)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 164, in __init__
    kilometers += self.measure(a, b)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\distance.py", line 410, in measure
    a, b = Point(a), Point(b)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\point.py", line 156, in __new__
    return cls.from_string(arg)
  File "C:\Users\me\AppData\Roaming\Python\Python37\site-packages\geopy\point.py", line 391, in from_string
    "Failed to create Point instance from string: unknown format."
ValueError: Failed to create Point instance from string: unknown format.

您定义ville1ville2的输入被读取为字符串。 Python 不知道您希望这些字符串引用您定义的变量。

更好的方法是将位置放在字典中并像这样访问它们:

from geopy.distance import geodesic

ville1 = input("Entrez la ville de départ : ")
ville2 = input("Entrez la ville d'arrivée : ")

locations = {
    'Paris': (48.864716, 2.349014),
    'Bordeaux': (44.835241, -0.573289),
    'Marseille': (43.301631, 5.373301),
    'Lyon': (45.760346, 4.837617),
    'Toulouse': (43.606225, 1.459017),
    'Nice': (43.714026, 7.259467),
    'Nantes': (47.226733, -1.560644),
    'Montpellier': (43.606620, 3.869740),
    'Strasbourg': (48.561351, 7.753844),
    'Rennes': (48.105276, -1.688280),
}

print(ville1)
print(ville2)
print(geodesic(locations[ville1], locations[ville2]).kilometers)

上面的一个例子:

Entrez la ville de départ : Paris
Entrez la ville d'arrivée : Nice
Paris
Nice
685.9425720999892

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM