Ich habe ein kleines Problem mit der Python-OGR-API. Ich versuche, alle Koordinaten jedes Scheitelpunkts des äußeren Rings eines Polygons abzurufen.
Das habe ich bisher:
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()
Ich habe gehört, dass Sie nur for
über die Region können, aber das gibt nur die Ringe im Polygon zurück, nicht die Knoten.
Jeder, der helfen kann.
python
open-source-gis
ogr
Nathan W
quelle
quelle
ogrinfo -al
sagt das?lon, lat, z = ring.GetPoint(p)
Welche für mich funktioniert.Zu Ihrer Information: Ein vollständiges Codebeispiel, das auf der ursprünglichen Frage basiert, sowie ein Skript, das Sie sofort verwenden können, finden Sie unter https://github.com/spatialguru/NME/blob/master/ogr_explode.py
quelle
Ich bin auf dasselbe Problem gestoßen. Ich beendete die Verwendung der ExportToJson-Funktion in OGR und las dann den Json-String in ein Wörterbuch. Unter Verwendung meiner Daten und der Notation aus der ursprünglichen Frage sieht dies folgendermaßen aus:
quelle
Wenn Sie sich nur Shapefiles ansehen , können Sie auch pyshp verwenden .
quelle