Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объектов

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Andrey VI
Интересующийся
Сообщения: 30
Зарегистрирован: 21 июл 2012, 11:36
Репутация: 1

Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объектов

Сообщение Andrey VI » 23 фев 2013, 11:39

Есть ли способ, не прибегая к инструменту "Полигон из границ слоя"? Тем более что в этом инструменте, похоже, не работает галочка "Только выделенные объекты". Да и сохранять множество полигонов только ради того, чтобы узнать эти границы, не рационально.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек

Сообщение Максим Дубинин » 23 фев 2013, 12:23

В консоли Python

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

lyr = qgis.utils.iface.activeLayer()
feat = lyr.selectedFeatures()[0]
geom = feat.geometry()
rect = geom.boundingBox().asPolygon()
подразумевается, что выбран 1 объект, разобрать в удобную форму предоставлю вам самому.
пристегивайтесь, турбулентность прямо по курсу

Andrey VI
Интересующийся
Сообщения: 30
Зарегистрирован: 21 июл 2012, 11:36
Репутация: 1

Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек

Сообщение Andrey VI » 23 фев 2013, 13:21

Хм… В Python я не силён, мягко говоря.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек

Сообщение Denis Rykov » 24 фев 2013, 03:18

Я особо тоже не знаток QGIS API, но как вариант. Запускаем консоль Python и вводим следующий код:

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


def union(g_list):
geometry = g_list[0]
for g in g_list[1:]:
geometry = geometry.combine(g)
return geometry

def bbox():
layer = qgis.utils.iface.activeLayer()
selected_features = layer.selectedFeatures()
geometries = [f.geometry() for f in selected_features]
return union(geometries).boundingBox()

Выделяем интересующие объекты и там же в консоли выполняем команду:

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

>>>bbox().toString()
PyQt4.QtCore.QString(u'47.3086838569735875,51.6693825914016145 : 48.4205696107324357,52.2123846679623114')

Что-то осталось непонятным?
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек

Сообщение Максим Дубинин » 24 фев 2013, 09:06

Денис, а зачем? Я же привел код - он работает и короче в два раза.

Все равно человек решил что вникнуть в 4 строчки для него проблема, стоит ли ему 10 предлагать?

PS: пардон, в разницу вник)
пристегивайтесь, турбулентность прямо по курсу

Ответить

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

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

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