Skip to Content

crea_mem_layer.py

  1. #!/usr/bin/python
  2. # encoding: utf-8
  3. """
  4. QGIS: fonction et classe permettant de créer des couches virtuelles
  5. (memory layers)
  6. Martin Laloux 2012
  7. """
  8. from qgis.core import *
  9.  
  10. class Crea_couche(object):
  11. """création d'une couche virtuelle (memory layer) de type Point, LineString
  12. ou Polygon,ajout des géométries et affichage"""
  13. # création de la virtuelle à partir du nom et du type géométrique
  14. def __init__(self,nom,type):
  15. self.type=type
  16. self.nom = nom
  17. self.couche = QgsVectorLayer(self.type, self.nom , "memory")
  18. self.pr = self.couche.dataProvider()
  19. def create_point(self,point):
  20. #ajout d'un point
  21. self.seg = QgsFeature()
  22. self.seg.setGeometry(QgsGeometry.fromPoint(point))
  23. self.pr.addFeatures([self.seg])
  24. self.couche.updateExtents()
  25. def create_ligne(self, point1,point2):
  26. #ajout d'une ligne
  27. self.seg = QgsFeature()
  28. self.seg.setGeometry(QgsGeometry.fromPolyline([point1,point2]))
  29. self.pr.addFeatures( [self.seg] )
  30. self.couche.updateExtents()
  31. def create_poly(self,points):
  32. #ajout d'un polygone
  33. self.seg = QgsFeature()
  34. self.seg.setGeometry(QgsGeometry.fromPolygon([points]))
  35. self.pr.addFeatures( [self.seg] )
  36. self.couche.updateExtents()
  37. @property
  38. def aff_couche(self):
  39. #fin de l'édition et affichage de la couche
  40. QgsMapLayerRegistry.instance().addMapLayers([self.couche])
  41.