Страница 1 из 1

Получение BBox'ов средствами python + QGIS

Добавлено: 02 сен 2012, 22:37
SS_Rebelious
Пытаюсь написать небольшую утилиту. Одна из задач - получение координат вершин BBox'ов объектов слоя. Пока застрял на получении самих BBox'ов.

Вот кусок соответствующего кода:

Код: Выделить всё

def az(filename):
layer = QgsVectorLayer(filename, "plygons", "ogr")
if not layer.isValid():
print "Layer failed to load!"
if layer.isValid():
print "layer loaded!"

# feature extraction
provider = layer.dataProvider()
feat = QgsFeature()
print 'feat:', feat

geom = QgsGeometry(feat.geometry())
print 'geom:', geom
while geom:
bb = geom.boundingBox()
print 'bb:', bb

Ничего не выходит, даже если не использовать "while geom:". То есть не создаётся "geom".' Как, кстати, здесь правильно задавать цикл?
Лог:

Код: Выделить всё

layer loaded!
feat: <qgis.core.QgsFeature object at 0x9be200>

Re: Получение BBox'ов средствами python + QGIS

Добавлено: 03 сен 2012, 12:40
Voltron

Код: Выделить всё

layer = QgsVectorLayer("/path/to/shape/file", "polygons", "ogr")
provider = layer.dataProvider()
provider.select()
ft = QgsFeature()
while provider.nextFeature(ft):
    bbox = ft.geometry().boundingBox()

Re: Получение BBox'ов средствами python + QGIS

Добавлено: 03 сен 2012, 19:18
SS_Rebelious
Спасибо!