示例#1
0
    def restoreTimeLayers(self, layerInfos):
        """restore all time layers"""
        if layerInfos:
            if len(layerInfos) > 0:
                self.guiControl.enableAnimationExport()
            for l in layerInfos:  # for every layer entry
                try:
                    settings = ls.getSettingsFromSaveStr(l)
                    if settings.layer is None:
                        error_msg = "Could not restore layer with id {} from saved project line {}". \
                            format(settings.layerId, l)
                        error(error_msg)
                        self.showMessage(error_msg)
                        continue

                    timeLayer = TimeLayerFactory.get_timelayer_class_from_settings(
                        settings)(settings, iface=self.iface)

                except Exception, e:
                    layerId = "unknown"
                    try:
                        layerId = settings.layerId
                    except:
                        pass
                    error_msg = "An error occured while trying to restore layer " + layerId \
                                + " to TimeManager.  " + str(e)
                    error(error_msg + traceback.format_exc(e))
                    self.showMessage(error_msg)
                    continue

                self.timeLayerManager.registerTimeLayer(timeLayer)
                self.guiControl.refreshMapCanvas('restoreTimeLayer')
    def restoreTimeLayers(self, layerInfos):
        """restore all time layers"""
        if layerInfos:
            if len(layerInfos)>0:
                self.guiControl.enableAnimationExport()
            for l in layerInfos: # for every layer entry
                try:
                    settings = ls.getSettingsFromSaveStr(l)
                    if settings.layer is None:
                        error_msg = "Could not restore layer with id {} from saved project line {}".\
                                format(settings.layerId, l)
                        error(error_msg)
                        self.showMessage(error_msg)
                        continue

                    timeLayer = TimeLayerFactory.get_timelayer_class_from_settings(settings)(settings,iface=self.iface)

                except Exception, e:
                    layerId = "unknown"
                    try:
                        layerId = settings.layerId
                    except:
                        pass
                    error_msg = "An error occured while trying to restore layer "+layerId\
                            +" to TimeManager.  "+str(e)
                    error(error_msg+traceback.format_exc(e))
                    self.showMessage(error_msg)
                    continue
               
                self.timeLayerManager.registerTimeLayer(timeLayer)
                self.guiControl.refreshMapCanvas('restoreTimeLayer')
    def createTimeLayer(self, row):
        """create a TimeLayer from options set in the table row"""
        layer = QgsMapLayerRegistry.instance().mapLayer(
            self.optionsDialog.tableWidget.item(row, 4).text())
        isEnabled = (self.optionsDialog.tableWidget.item(
            row, 3).checkState() == Qt.Checked)
        # offset
        offset = int(self.optionsDialog.tableWidget.item(
            row, 6).text())  # currently only seconds!
        # start time
        startTimeAttribute = self.optionsDialog.tableWidget.item(row, 1).text()
        # end time (optional)
        if self.optionsDialog.tableWidget.item(row, 2).text() == "":
            endTimeAttribute = startTimeAttribute
        else:
            endTimeAttribute = self.optionsDialog.tableWidget.item(row,
                                                                   2).text()
        # time format
        timeFormat = self.optionsDialog.tableWidget.item(row, 5).text()

        try:
            timeLayer = TimeLayerFactory.get_timelayer_class_from_layer(layer)(
                layer, startTimeAttribute, endTimeAttribute, isEnabled,
                timeFormat, offset, self.iface)
        except InvalidTimeLayerError, e:
            QMessageBox.information(
                self.iface.mainWindow(), 'Error',
                'An error occured while trying to add layer ' + layer.name() +
                ' to TimeManager.\n' + e.value)
            raise InvalidTimeLayerError(e)
 def createTimeLayerFromRow(self,row):
     """create a TimeLayer from options set in the table row"""
     try:
         settings = ls.getSettingsFromRow(self.guiControl.optionsDialog.tableWidget, row)
         timeLayer = TimeLayerFactory.get_timelayer_class_from_settings(settings)(settings, self.iface)
     except Exception, e:
         layer_name = "unknown"
         try:
             layer_name = settings.layer.name()
         except:
             pass
         error_msg = "An error occured while trying to add layer "\
                 +layer_name+" to TimeManager. Cause: "+str(e)
         error(error_msg+traceback.format_exc(e))
         self.showMessage(error_msg)
         return None
示例#5
0
 def createTimeLayerFromRow(self, row):
     """create a TimeLayer from options set in the table row"""
     try:
         settings = ls.getSettingsFromRow(self.guiControl.optionsDialog.tableWidget, row)
         timeLayer = TimeLayerFactory.get_timelayer_class_from_settings(settings)(settings,
                                                                                  self.iface)
     except Exception, e:
         layer_name = "unknown"
         try:
             layer_name = settings.layer.name()
         except:
             pass
         error_msg = "An error occured while trying to add layer " \
                     + layer_name + " to TimeManager. Cause: " + str(e)
         error(error_msg + traceback.format_exc(e))
         self.showMessage(error_msg)
         return None
    def restoreTimeLayers(self, value):
        """restore all time layers"""
        #FIXME What is value here?
        if value:
            layerInfo = value
            if len(layerInfo):
                self.guiControl.enableAnimationExport()
            for l in layerInfo:  # for every layer entry
                l = l.split(';')
                layer = QgsMapLayerRegistry.instance().mapLayer(
                    l[0])  # get the layer
                if not layer:
                    continue

                timeLayerClass = TimeLayerFactory.get_timelayer_class_from_layer(
                    layer)
                if timeLayerClass == TimeVectorLayer:
                    layer.setSubsetString(
                        l[1]
                    )  # restore the original subset string, only available for vector layers!

                startTimeAttribute = l[2]
                endTimeAttribute = l[3]
                isEnabled = l[4]
                timeFormat = l[5]

                try:
                    offset = l[6]
                except IndexError:  # old versions didn't have an offset option
                    offset = 0

                try:  # here we use the previously determined class
                    timeLayer = timeLayerClass(layer, startTimeAttribute,
                                               endTimeAttribute, isEnabled,
                                               timeFormat, offset)
                except InvalidTimeLayerError, e:
                    self.showMessage(
                        'An error occured while trying to add layer ' +
                        layer.name() + ' to \
                            TimeManager.\n' + e.value)
                    return

                self.timeLayerManager.registerTimeLayer(timeLayer)
                self.guiControl.showLabel = True
                self.guiControl.refreshMapCanvas('restoreTimeLayer')