用折线传递变量作为参数

时间:2018-10-09 20:30:19

标签: python-3.x python-2.7

我正在尝试使用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)

我的脚本中断了

编辑:折线要求我提供坐标sin元组格式

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

任何帮助或建议都值得赞赏。

1 个答案:

答案 0 :(得分: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)