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

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

Добавлено: 22 мар 2013, 09:01
KOHb
Как создать полигон на питоне под 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?

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

Добавлено: 22 мар 2013, 14:46
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>

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

Добавлено: 24 мар 2013, 06:48
KOHb
Спасибо, помогли.
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() ) ), а потом делал список из них.