#!/usr/bin/python
# encoding: utf-8
"""
QGIS: fonction et classe permettant de créer des couches virtuelles
(memory layers)
Martin Laloux 2012
"""
from qgis.core import *
class Crea_couche(object):
"""création d'une couche virtuelle (memory layer) de type Point, LineString
ou Polygon,ajout des géométries et affichage"""
# création de la virtuelle à partir du nom et du type géométrique
def __init__(self,nom,type):
self.type=type
self.nom = nom
self.couche = QgsVectorLayer(self.type, self.nom , "memory")
self.pr = self.couche.dataProvider()
def create_point(self,point):
#ajout d'un point
self.seg = QgsFeature()
self.seg.setGeometry(QgsGeometry.fromPoint(point))
self.pr.addFeatures([self.seg])
self.couche.updateExtents()
def create_ligne(self, point1,point2):
#ajout d'une ligne
self.seg = QgsFeature()
self.seg.setGeometry(QgsGeometry.fromPolyline([point1,point2]))
self.pr.addFeatures( [self.seg] )
self.couche.updateExtents()
def create_poly(self,points):
#ajout d'un polygone
self.seg = QgsFeature()
self.seg.setGeometry(QgsGeometry.fromPolygon([points]))
self.pr.addFeatures( [self.seg] )
self.couche.updateExtents()
@property
def aff_couche(self):
#fin de l'édition et affichage de la couche
QgsMapLayerRegistry.instance().addMapLayers([self.couche])