123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- # -*- coding: utf-8 -*-
- """
- ***************************************************************************
- spotfileupload.py
- ---------------------
- Date : November 2012
- Copyright : (C) 2012 by Victor Olaya
- Email : volayaf at gmail dot com
- ***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************
- """
- __author__ = 'wanger'
- __date__ = 'November 2024'
- __copyright__ = '(C) 2024, wanger'
- import os
- from osgeo import ogr, gdal
- from PyQt5.QtGui import QIcon
- from PyQt5.QtWidgets import QApplication
- from future.moves import sys
- from qgis.PyQt import QtWidgets
- from qgis.core import (QgsProcessing,
- QgsProcessingParameterFeatureSource,
- QgsProcessingParameterString,
- QgsProcessingParameterFile,
- QgsProcessingParameterDateTime,
- QgsProcessingParameterEnum,
- QgsProcessingParameterCrs,
- QgsProcessingParameterField,
- QgsProcessingParameterExtent,
- QgsProcessingParameterBoolean,
- QgsProcessingParameterProviderConnection,
- QgsProcessingParameterDatabaseSchema,
- QgsProcessingParameterDatabaseTable,
- QgsProviderRegistry,
- QgsProcessingException,
- QgsProcessingParameterDefinition,
- QgsProviderConnectionException,
- QgsDataSourceUri)
- from processing.algs.gdal.GdalAlgorithm import GdalAlgorithm
- from processing.algs.gdal.GdalUtils import GdalUtils
- from processing.tools.PrintUtils import printStr
- from processing.tools.StringUtils import getConnectionStr
- from processing.tools.GeoServer.Geoserver import Geoserver
- from processing.tools.PostgreSQL.PostgreSQL import PostgreSQL
- from processing.tools.system import isWindows
- pluginPath = os.path.normpath(os.path.join(
- os.path.split(os.path.dirname(__file__))[0], os.pardir))
- gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES")
- gdal.SetConfigOption("SHAPE_ENCODING", "GBK")
- class SpotfileUpload(GdalAlgorithm):
- LOGIN_USER = "灵武市"
- SPOTFILE = 'SPOTFILE'
- def __init__(self):
- super().__init__()
- def initAlgorithm(self, config=None):
- self.addParameter(QgsProcessingParameterFile(self.SPOTFILE,
- self.tr('图斑数据'),
- optional=False, fileFilter='Compress Files (*.zip *.rar)'))
- def name(self):
- return 'spotfileupload'
- def icon(self):
- return QIcon(os.path.join(pluginPath, 'images', 'dbms', 'upload.png'))
- def displayName(self):
- return self.tr('图斑数据上传')
- def shortDescription(self):
- return self.tr('图斑数据上传')
- def tags(self):
- t = self.tr('import,into,postgis,database,vector').split(',')
- t.extend(super().tags())
- return t
- def group(self):
- return self.tr('图斑核查与传输')
- def groupId(self):
- return 'spot'
- # 判断数据是否为字符串
- def is_string(self, var):
- return isinstance(var, str)
- def getConsoleCommands(self, parameters, context, feedback, executing=True):
- return []
- def contains_keys(self, obj, keys):
- if isinstance(obj, dict):
- return all(key in obj.keys() for key in keys)
- elif hasattr(type(obj), '__dict__'):
- return all(key in obj.__dict__ for key in keys)
- else:
- raise ValueError("Invalid object type")
- def commandName(self):
- return "ogr2ogr"
|