我正在尝试使用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)].
任何帮助或建议都值得赞赏。
答案 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)