我正在使用 Python,使用 Folium 库。我想从 .txt 读取 GPS 坐标(纬度、经度)并将其放入列表中。问题是,我现在的清单是:
['(-27.414, -48.518)', '(-27.414, -48.517)', '(-27.413, -48.517)', '(-27.412, -48.517)', '(-27.412, -48.516)', '(-27.411, -48.516)']
但是当我想使用最后一个项目作为位置时,出现错误:
ValueError: Expected two (lat, lon) values for location, instead got: '(-27.414, -48.518)'
有什么方法可以更改我的列表,使那些“引号”消失吗?
我已经尝试过:
list(map(int, coordinatesList))
'[%s]' % ', '.join(map(str, coordinatesList))
但无济于事,在这两个项目上,列表不再是列表,如果我尝试访问第一个项目,它会返回“[”。
在我的 .txt 中,每一行都是一个坐标集(纬度、经度),没有括号并用逗号分隔。我有一个功能:
def criaListaDeCoordenadas(caminhoArquivo):
coordenadasLidas = []
with open(caminhoArquivo) as arquivo:
temp = []
for latLong in arquivo:
if latLong.strip():
temp.append(latLong.strip())
for i in temp:
i = '(' + i + ')'
if i not in coordenadasLidas:
coordenadasLidas.append(i)
return coordenadasLidas
它返回
['(-27.414, -48.518)', '(-27.414, -48.517)', '(-27.413, -48.517)', '(-27.412, -48.517)', '(-27.412, -48.516)', '(-27.411, -48.516)']
,但我希望它返回 [(-27.414, -48.518), (-27.414, -48.517), (-27.413, -48.517), (-27.412, -48.517), (-27.412, -48.516), (-27.411, -48.516)]
,同时仍然是一个列表。该函数的返回值将用于 folium.Marker()
。
您正在创建元组的字符串表示形式,而不是创建实际的元组,以添加到列表中。做类似的事情
import re
def criaListaDeCoordenadas(caminhoArquivo):
coordenadasLidas = []
with open(caminhoArquivo) as arquivo:
temp = []
for lat_long_str in arquivo:
lat_long = [float(x) for x in re.split(r',\s*', lat_long_str)]
coordenadasLidas.append(tuple(lat_long))
return coordenadasLidas