Tengo un pequeño problema con la API Python OGR. Lo que intento hacer es obtener todas las coordenadas de cada vértice del anillo exterior de un polígono.
Esto es lo que tengo hasta ahora:
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()
Escuché que puedes for
sobre la región, pero eso solo devuelve los anillos en el polígono, no los nodos.
Cualquiera capaz de ayudar.
python
open-source-gis
ogr
Nathan W
fuente
fuente
ogrinfo -al
dice?lon, lat, z = ring.GetPoint(p)
Lo que funciona para mí.FYI: para obtener un ejemplo de código completo basado en la pregunta original y un script que puede usar de inmediato ... consulte https://github.com/spatialguru/NME/blob/master/ogr_explode.py
fuente
Me encontré con el mismo problema. Terminé usando la función ExportToJson en ogr y luego leyendo la cadena Json en un diccionario. Usando mis datos y la notación de la pregunta original, esto se ve así:
fuente
Si solo estás mirando archivos de forma, también puedes usar pyshp .
fuente