Страница 1 из 1
Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объектов
Добавлено: 23 фев 2013, 11:39
Andrey VI
Есть ли способ, не прибегая к инструменту "Полигон из границ слоя"? Тем более что в этом инструменте, похоже,
не работает галочка "Только выделенные объекты". Да и сохранять множество полигонов только ради того, чтобы узнать эти границы, не рационально.
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 объект, разобрать в удобную форму предоставлю вам самому.
Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек
Добавлено: 23 фев 2013, 13:21
Andrey VI
Хм… В Python я не силён, мягко говоря.
Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек
Добавлено: 24 фев 2013, 03:18
Denis Rykov
Я особо тоже не знаток 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')
Что-то осталось непонятным?
Re: Узнать границы (Xmin, Ymin; Xmax, Ymax) выделенных объек
Добавлено: 24 фев 2013, 09:06
Максим Дубинин
Денис, а зачем? Я же привел код - он работает и короче в два раза.
Все равно человек решил что вникнуть в 4 строчки для него проблема, стоит ли ему 10 предлагать?
PS: пардон, в разницу вник)