Estou tendo um pequeno problema com a API OGR do Python. O que estou tentando fazer é obter todas as coordenadas de cada vértice do anel externo de um polígono.
Isto é o que eu tenho até agora:
import osgeo.ogr
import glob
path = "/home/woo/maps/"
out = path + 'output.txt'
file = open(out,'w')
for filename in glob.glob(path + "*.shp"):
ds = osgeo.ogr.Open(filename)
layer1 = ds.GetLayer(0)
print layer1.GetExtent()
for feat in layer1:
geom = feat.GetGeometryRef()
ring = geom.GetGeometryRef(0)
points = ring.GetPointCount()
#Not sure what to do here
file.close()
Ouvi dizer que você pode for
atravessar a região, mas que apenas retorna os anéis no polígono, não os nós.
Qualquer um capaz de ajudar.
python
open-source-gis
ogr
Nathan W
fonte
fonte
ogrinfo -al
diz?lon, lat, z = ring.GetPoint(p)
que funciona para mim.FYI - para obter um exemplo de código completo baseado na pergunta original e um script que você pode usar imediatamente. Consulte https://github.com/spatialguru/NME/blob/master/ogr_explode.py
fonte
Acabei de encontrar o mesmo problema. Acabei usando a função ExportToJson no ogr e depois li a string Json em um dicionário. Usando meus dados e a notação da pergunta original, isso se parece com:
fonte
Se você estiver olhando apenas para shapefiles, também poderá usar o pyshp .
fonte