Mam trochę problemów z interfejsem API Python OGR. Staram się uzyskać wszystkie współrzędne każdego wierzchołka zewnętrznego pierścienia wielokąta.
Oto co mam do tej pory:
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()
Słyszałem, że możesz przejść for
przez region, ale to zwraca tylko pierścienie w wielokącie, a nie węzły.
Każdy, kto może pomóc.
python
open-source-gis
ogr
Nathan W.
źródło
źródło
ogrinfo -al
mówi?lon, lat, z = ring.GetPoint(p)
Która działa dla mnie.FYI - kompletny przykład kodu oparty na oryginalnym pytaniu oraz skrypt, którego można użyć od razu .. patrz https://github.com/spatialguru/NME/blob/master/ogr_explode.py
źródło
Właśnie natrafiłem na ten sam problem. Skończyłem używać funkcji ExportToJson w ogrodzie, a następnie czytałem ciąg Json w słowniku. Używając moich danych i zapisu z pierwotnego pytania, wygląda to tak:
źródło
Jeśli patrzysz tylko na pliki kształtów, możesz także użyć pyshp .
źródło