使用折线将变量作为参数传递



我正在尝试使用google的polyline.encode功能对从csv文件中获取的一组坐标进行编码。此函数采用以下格式的坐标

polyline.encode([(38.5, -120.2), (40.7, -120.9), (43.2, -126.4)], 5)

我读取 csv 和格式的每一行并将其传递给一个变量,然后添加括号,以便 polyline.encode 可以运行它。但是我的代码在那里中断。我需要将其转换为字符串吗?

这是我的 for 循环函数,它可以正确格式化坐标

filename = 'coords.csv'
file = open(filename, encoding="utf8")
result = ""
for line in file:
currentline = line.split(",")
result += '('+currentline[1]+', '+ currentline[2]+')'+','
coords = f'[{result}]'
print(coords)

然后打印坐标 然后我试着打电话

polyline.encode(coords)

我的脚本中断了

编辑:折线要求我给出坐标正弦元组格式

:param coordinates: List of coordinate tuples, e.g. [(0, 0), (1, 0)].

任何帮助或建议不胜感激。

您需要使用由Tuple数据类型组成的列表,现在您只是使用格式化为看起来像Tuple元素列表的字符串。

试试这个:

filename = 'coords.csv'
file = open(filename, encoding="utf8")
coords= []
for line in file:
currentline = line.split(",")
coords.append(( float(currentline[1]), float(currentline[2]) ))
print(coords)
polyline.encode(coords)

最新更新