예제 #1
0
 def pre(self):
     """Este método se encarga de eliminar todas las capas cargagas previamente en el registro de QGIS (QgsMapLayerRegistry)."""
     # Delete all layeres
     eje = manager.get_layer('ejes')
     fondo = manager.get_layer('fondo')
     hidro = manager.get_layer('hidrografia')
     secciones = manager.get_layer('secciones')
     manager.remove_layers([eje, fondo, hidro, secciones])
예제 #2
0
    def pre(self):
        """Verifica que las capas necesarias para realizar esta acción estan cargadas.

        :returns: Un booleano que indica si se cumple o no la condición.
        :rtype: bool
        """
        self.eje = manager.get_layer('ejes')
        self.work_layer = manager.get_layer('output')

        return self.eje is not None and self.work_layer is not None
예제 #3
0
    def pre(self):
        # Verifica que la capa de hidrografía exista
        self.hidro_layer = manager.get_layer('hidrografia')
        self.gen_sec = manager.get_layer('secciones')

        if self.hidro_layer is None:
            raise LayerNotFound('hidrografia')

        # Este error se genera para preguntarle al usuario que desea hacer.
        if self.gen_sec is not None:
            raise PreviousGeneratedLayerFound('secciones')
예제 #4
0
    def pre(self):
        """Verifica si existe la capa de secciones.

        :returns: Un booleano que indica si ya esta cargada la capa de secciones:
        :rtype: bool
        """
        self.seccionesLayer = manager.get_layer('secciones')
        return self.seccionesLayer is not None
예제 #5
0
    def pre(self):
        """Este método se encarga de obtener la capa de secciones del administrador de las capas cargadas (manager) y lo retorna.

        :returns: La capa de secciones en caso de que la encuentre, retorna Nonde de otra forma.
        :rtype: QgsVectorLayer"""

        self.shp = manager.get_layer('secciones')
        return self.shp
예제 #6
0
    def pos(self, iface):
        """Agrega la capa de salida (output) al gestor de capas de QGIS."""

        #Elimina la capa output en caso de de que exista
        output = manager.get_layer('output')
        if output is not None:
            manager.remove_layers([output])

        #Mostrar la capa de trabajo work_layer
        manager.add_layers([self.work_layer])
예제 #7
0
    def pro(self):
        """Crea una capa temporal para almacenar las secciones, en caso de que no exista."""
        self.tempLayer = manager.get_layer('temp')
        if self.tempLayer is None:
            crs = self.seccionesLayer.crs().authid()

            self.tempLayer = QgsVectorLayer('LineString?crs=' + crs, 'temp',
                                            'memory')

            pr = self.tempLayer.dataProvider()
            fields = self.seccionesLayer.pendingFields()
            pr.addAttributes(fields)

            manager.add_layers([self.tempLayer])
예제 #8
0
    def pro(self):
        """Crea una capa de salida con las secciones de la capa de secciones, y las secciones agregadas por el usuario."""
        self.work_layer = self.addFeature(self.secciones)

        temp = manager.get_layer('temp')
        if temp is not None:
            """En caso de que existan secciones temporales, se combinaran con la
               capa de secciones, para crear la capa work_layer"""
            for new_feature in temp.getFeatures():
                segements = geometry.getSegments(self.work_layer)
                point = geometry.intersectionLayerGeometry(
                    self.eje, new_feature.geometry())
                if point is None: continue
                idx = self.place(segements, point)
                # print 'IDX: ', idx
                self.work_layer = self.addFeature(self.work_layer, new_feature,
                                                  idx)