Пример #1
0
 def clean(self):
     if self.qgisProjectLayer.layerType in [
             Layer.TYPES.gdal, Layer.TYPES.ogr, Layer.TYPES.raster
     ]:
         if self.qgisProjectLayer.layerType != Layer.TYPES.gdal or not isXML(
                 self.qgisProjectLayer.datasource):
             if not os.path.exists(
                     self.qgisProjectLayer.datasource.split('|')[0]):
                 err = ugettext('Missing data file for layer {} '.format(
                     self.qgisProjectLayer.name))
                 err += ugettext('which should be located at {}'.format(
                     self.qgisProjectLayer.datasource))
                 raise QgisProjectLayerException(err)
Пример #2
0
    def _getDataOrigname(self):
        if self.layerType == Layer.TYPES.ogr:
            name = os.path.splitext(os.path.basename(self.datasource))[0]
        elif self.layerType == Layer.TYPES.gdal:
            if isXML(self.datasource):
                name = self.name
            else:
                name = os.path.splitext(os.path.basename(self.datasource))[0]
        elif self.layerType == Layer.TYPES.postgres or self.layerType == Layer.TYPES.spatialite:
            dts = datasource2dict(self.datasource)
            name = dts['table'].split('.')[-1].replace("\"", "")
        elif self.layerType ==Layer.TYPES.wms:
            dts = QueryDict(self.datasource)
            name = dts['layers']
        else:
            name = self.qgisProjectLayerTree.find('layername').text

        return name
Пример #3
0
    def clean(self):
        if self.qgisProjectLayer.layerType in [
            Layer.TYPES.gdal,
            Layer.TYPES.ogr,
            Layer.TYPES.raster] and not isXML(self.qgisProjectLayer.datasource):

            # tray PostGis raster layer
            if self.qgisProjectLayer.datasource.startswith("PG:"):

                # try to open postgis raster with gdal
                raster = gdal.Open(self.qgisProjectLayer.datasource)
                if raster is None:
                    err = ugettext('Cannot connect to Postgis raster layer {} '.format(
                        self.qgisProjectLayer.name))
                    raise QgisProjectLayerException(err)

            else:
                if not os.path.exists(self.qgisProjectLayer.datasource.split('|')[0]):
                    err = ugettext('Missing data file for layer {} '.format(
                        self.qgisProjectLayer.name))
                    err += ugettext('which should be located at {}'.format(
                        self.qgisProjectLayer.datasource))
                    raise QgisProjectLayerException(err)