Создание полигона в QGIS

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
KOHb
Новоприбывший
Сообщения: 5
Зарегистрирован: 27 окт 2011, 17:35
Репутация: 0
Откуда: Казань

Создание полигона в QGIS

Сообщение KOHb » 22 мар 2013, 09:01

Как создать полигон на питоне под Qgis?

тут написано:

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

gPolygon = QgsGeometry.fromPolygon( [ [ QgsPoint(1,1), QgsPoint(2,2), QgsPoint(2,1) ] ] )
я пытаюсь так:

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

QgsGeometry.fromPolygon( listOfRectangle )
где listOfRectangle это список вида: [ [ QgsPoint(1, 1), QgsPoint(2, 2), QgsPoint(3,3) ] ]

и у меня не получается. Выдает шибку, что тип list ему не нужен.

Как создать полигон не забивая вручную эти QgsPoints?

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

Re: Создание полигона в QGIS

Сообщение SS_Rebelious » 22 мар 2013, 14:46

На сколько я понял проблему, вам надо создать функцию, которая будет строить полигоны из наборов координат. Вот код для вдохновения:

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


>>>l = [(1,2), (1,0), (2,1)]
>>> def pol(list):
... polygon = []
... for i in list:
... p = QgsPoint(i[0], i[1])
... polygon.append(p)
... return QgsGeometry.fromPolygon([polygon])
...
>>> poly=pol(l)
>>> poly
<qgis.core.QgsGeometry object at 0xb346290>
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!

Аватара пользователя
KOHb
Новоприбывший
Сообщения: 5
Зарегистрирован: 27 окт 2011, 17:35
Репутация: 0
Откуда: Казань

Re: Создание полигона в QGIS

Сообщение KOHb » 24 мар 2013, 06:48

Спасибо, помогли.
SS_Rebelious писал(а):

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


>>>l = [(1,2), (1,0), (2,1)]
>>> def pol(list):
... polygon = []
... for i in list:
... p = QgsPoint(i[0], i[1])
... polygon.append(p)
... return QgsGeometry.fromPolygon([polygon])
...
>>> poly=pol(l)
>>> poly
<qgis.core.QgsGeometry object at 0xb346290>
Мой код практически идентичен, но не работает. Видимо моя ошибка была в том, что я точки создавал как Feature(), потом делал setGeometry ( QgsGeometry.fromPoint( QgsPoint() ) ), а потом делал список из них.

Ответить

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

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

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