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

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

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

Сообщение SS_Rebelious » 02 сен 2012, 22:37

Пытаюсь написать небольшую утилиту. Одна из задач - получение координат вершин 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>
Последний раз редактировалось SS_Rebelious 03 сен 2012, 19:18, всего редактировалось 1 раз.
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

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

Сообщение Voltron » 03 сен 2012, 12:40

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

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

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

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

Сообщение SS_Rebelious » 03 сен 2012, 19:18

Спасибо!
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя