У меня небольшие проблемы с Python OGR API. То, что я пытаюсь сделать, это получить все координаты каждой вершины внешнего кольца многоугольника.
Это то, что я до сих пор:
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()
Я слышал, что вы можете только for
над областью, но это возвращает только кольца в многоугольнике, а не узлы.
Любой, кто может помочь.
python
open-source-gis
ogr
Натан У
источник
источник
ogrinfo -al
говорит?lon, lat, z = ring.GetPoint(p)
что работает для меня.К вашему сведению - полный пример кода, основанный на исходном вопросе, и сценарий, который вы можете использовать сразу же. См. Https://github.com/spatialguru/NME/blob/master/ogr_explode.py
источник
Я просто столкнулся с той же проблемой. Я прекратил использовать функцию ExportToJson в ogr и затем прочитал строку Json в словарь. Используя мои данные и обозначения из исходного вопроса, это выглядит так:
источник
Если вы смотрите только шейп-файлы, вы также можете использовать pyshp .
источник