我在 OGR 中创建一个多边形并在 Python 中为其添加坐标。添加时不允许更改我的坐标是必须的,但是它们会更改,我不明白为什么。这是我的例子:
import ogr
ring = ogr.Geometry(ogr.wkbLinearRing)
ring.AddPoint(12.5433, 54.10064)
ring.AddPoint(12.5433026066, 54.1006582464)
ring.AddPoint(12.543312311, 54.1006489082)
ring.AddPoint(12.5433093954, 54.1006320625)
ring.AddPoint(12.5433, 54.10064)
poly = ogr.Geometry(ogr.wkbPolygon)
poly.AddGeometry(ring)
polygon = poly.ExportToWkt()
现在,如果我打印多边形,我会收到:
'POLYGON ((12.5433 54.10064 0,
12.543302606599999 54.100658246400002 0,
12.543312311 54.1006489082 0,
12.5433093954 54.100632062499997 0,
12.5433 54.10064 0))'
例如:
Example: (12.5433026066, 54.1006582464) to (12.543302606599999 54.100658246400002)
显然已经添加了浮点数,我不明白为什么。帮助表示赞赏。
我是怎么做到的?因为我只需要 WKT 格式,所以我连接了一个字符串:
a = [(12.5433, 54.10064),(12.5433026066, 54.1006582464),(12.543312311, 54.1006489082),(12.5433093954, 54.1006320625),(12.5433, 54.10064)]
polygon = str('POLYGON((')
for i in range(len(a)):
polygon+= str(a[i][0])
polygon+= str(' ')
polygon+= str(a[i][1])
polygon+= str(',')
if i==len(a)-1:
polygon+=str(a[0][0])
polygon+=str(a[0][1])
polygon+=str('))')
print polygon