我需要一些支持来实现多边形。
今天,我有一个字符串,我需要更改为可以识别为多边形的格式。

我直接从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/

10-10 19:10