我需要一些支持来实现多边形。
今天,我有一个字符串,我需要更改为可以识别为多边形的格式。
我直接从SQL获取多边形的值:
例:
我这样阅读:
string = "POLYGON ((-47.158846224312285 -21.349760242365733;-47.158943117468695 -21.349706412900805;-47.159778541623055 -21.349008036758804))"
我需要更改这种格式
list = [(-47.158846224312285, -21.349760242365733), (47.158943117468695 -21.349706412900805), (-47.159778541623055, -21.349008036758804)]
任何想法如何修改?
最佳答案
您可以尝试通过re
module用正则表达式解析字符串,如下所示:
import re
pat = re.compile(r'''(-*\d+\.\d+ -*\d+\.\d+);*''')
s = "POLYGON ((-47.158846224312285 -21.349760242365733;-47.158943117468695 -21.349706412900805;-47.159778541623055 -21.349008036758804))"
matches = pat.findall(s)
if matches:
lst = [tuple(map(float, m.split())) for m in matches]
print(lst)
输出:
[(-47.158846224312285, -21.349760242365733), (-47.158943117468695, -21.349706412900805), (-47.159778541623055, -21.349008036758804)]
关于python - 如何在真实多边形上变换多边形字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38532816/