本文整理汇总了Python中qgis.core.QgsCoordinateReferenceSystem.description方法的典型用法代码示例。如果您正苦于以下问题:Python QgsCoordinateReferenceSystem.description方法的具体用法?Python QgsCoordinateReferenceSystem.description怎么用?Python QgsCoordinateReferenceSystem.description使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsCoordinateReferenceSystem
的用法示例。
在下文中一共展示了QgsCoordinateReferenceSystem.description方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: crs_text_element
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
def crs_text_element(crs, feature, parent):
"""Retrieve coordinate reference system text string from definitions.
Example usage: crs_text_element('EPSG:3857').
"""
_ = feature, parent # NOQA
crs_definition = QgsCoordinateReferenceSystem(crs)
crs_description = crs_definition.description()
text = crs_text['string_format'].format(crs=crs_description)
return text
示例2: on_srsButton_clicked
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
def on_srsButton_clicked(self):
'''
Opens the dialog to select CRS
'''
projSelector = QgsGenericProjectionSelector()
message = self.tr('Select the Spatial Reference System!')
projSelector.setMessage(theMessage=message)
if not projSelector.exec_():
QMessageBox.warning(self, self.tr("Warning!"), message)
return
else:
self.epsg = int(projSelector.selectedAuthId().split(':')[-1])
srs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
self.srLineEdit.setText(srs.description())
示例3: on_srsButton_clicked
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
def on_srsButton_clicked(self):
projSelector = QgsGenericProjectionSelector()
message = 'Select the Spatial Reference System!'
projSelector.setMessage(theMessage=message)
projSelector.exec_()
try:
self.epsg = int(projSelector.selectedAuthId().split(':')[-1])
srs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if srs:
self.srsEdit.setText(srs.description())
else:
self.epsg = 4326
except:
QMessageBox.warning(self, self.tr("Warning!"), self.tr(message))
示例4: __init__
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
def __init__(self, iface):
"""Constructor."""
super(ProcessingTools, self).__init__()
# Set up the user interface from Designer.
# After setupUI you can access any designer object by doing
# self.<objectname>, and you can use autoconnect slots - see
# http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
# #widgets-and-dialogs-with-auto-connect
self.setupUi(self)
self.iface = iface
self.tabWidget.removeTab(1)
self.epsg = 4326
srs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
self.srLineEdit.setText(srs.description())
示例5: getSpatialRefInfo
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
def getSpatialRefInfo(self, srid):
crs = QgsCoordinateReferenceSystem(srid)
return crs.description()
示例6: LoadByCategory
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
#.........这里部分代码省略.........
def selectOne(self):
listedItems = self.listWidgetCategoryFrom.selectedItems()
for i in listedItems:
item = self.listWidgetCategoryFrom.takeItem(self.listWidgetCategoryFrom.row(i))
self.listWidgetCategoryTo.addItem(item)
self.listWidgetCategoryTo.sortItems()
def deselectOne(self):
listedItems = self.listWidgetCategoryTo.selectedItems()
for i in listedItems:
item = self.listWidgetCategoryTo.takeItem(self.listWidgetCategoryTo.row(i))
self.listWidgetCategoryFrom.addItem(item)
self.listWidgetCategoryFrom.sortItems()
def setAllGroup(self):
if self.checkBoxAll.isChecked():
self.checkBoxPoint.setCheckState(2)
self.checkBoxLine.setCheckState(2)
self.checkBoxPolygon.setCheckState(2)
else:
self.checkBoxPoint.setCheckState(0)
self.checkBoxLine.setCheckState(0)
self.checkBoxPolygon.setCheckState(0)
def setCRS(self):
try:
self.epsg = self.utils.findEPSG(self.db)
if self.epsg == -1:
self.bar.pushMessage("", self.tr("Coordinate Reference System not set or invalid!"), level=QgsMessageBar.WARNING)
else:
self.crs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.isSpatialite:
self.spatialiteCrsEdit.setText(self.crs.description())
self.spatialiteCrsEdit.setReadOnly(True)
else:
self.postGISCrsEdit.setText(self.crs.description())
self.postGISCrsEdit.setReadOnly(True)
except:
pass
@pyqtSlot(int)
def on_comboBoxPostgis_currentIndexChanged(self):
if self.comboBoxPostgis.currentIndex() > 0:
self.loadDatabase()
def loadDatabase(self):
self.closeDatabase()
if self.isSpatialite:
(self.filename, self.db) = self.utils.getSpatialiteDatabase()
if self.filename:
self.spatialiteFileEdit.setText(self.filename)
else:
self.db = self.utils.getPostGISDatabase(self.comboBoxPostgis.currentText())
try:
if not self.db.open():
QgsMessageLog.logMessage(self.db.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
else:
self.dbLoaded = True
self.listCategoriesFromDatabase()
except:
pass
def populatePostGISConnectionsCombo(self):
self.comboBoxPostgis.clear()
示例7: Dialog
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
class Dialog(QDialog, Ui_Dialog):
def __init__(self, iface):
QDialog.__init__(self, iface.mainWindow())
self.iface = iface
self.setupUi(self)
self.toolOut.setEnabled(False)
self.toolOut.setVisible(False)
self.outShape.setEnabled(False)
self.outShape.setVisible(False)
self.label_2.setVisible(False)
self.label_2.setEnabled(False)
self.setWindowTitle(self.tr("Define current projection"))
self.buttonOk = self.buttonBox_2.button(QDialogButtonBox.Ok)
QObject.connect(self.btnProjection, SIGNAL("clicked()"), self.outProjFile)
QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.updateProj1)
QObject.connect(self.cmbLayer, SIGNAL("currentIndexChanged(QString)"), self.updateProj2)
# populate layer list
self.progressBar.setValue(0)
layers = ftools_utils.getLayerNames([QGis.Point, QGis.Line, QGis.Polygon])
self.inShape.addItems(layers)
self.cmbLayer.addItems(layers)
self.crs = None
def updateProj1(self, layerName):
self.inRef.clear()
tempLayer = ftools_utils.getVectorLayerByName(layerName)
crs = tempLayer.dataProvider().crs()
if crs.isValid():
self.inRef.insert(crs.authid() + " - " + crs.description())
else:
self.inRef.insert(self.tr("Missing or invalid CRS"))
def updateProj2(self, layerName):
self.outRef.clear()
tempLayer = ftools_utils.getVectorLayerByName(layerName)
crs = tempLayer.dataProvider().crs()
if crs.isValid():
self.outRef.insert(crs.authid() + " - " + crs.description())
else:
self.outRef.insert(self.tr("Missing or invalid CRS"))
def accept(self):
self.buttonOk.setEnabled(False)
if self.inShape.currentText() == "":
QMessageBox.information(self, self.tr("Define current projection"), self.tr("No input shapefile specified"))
elif self.txtProjection.text() == "" and self.rdoProjection.isChecked():
QMessageBox.information(self, self.tr("Define current projection"), self.tr("Please specify spatial reference system"))
elif self.cmbLayer.currentText() == "" and self.rdoLayer.isChecked():
QMessageBox.information(self, self.tr("Define current projection"), self.tr("Please specify spatial reference system"))
else:
self.progressBar.setValue(5)
inName = self.inShape.currentText()
self.progressBar.setValue(10)
vLayer = ftools_utils.getVectorLayerByName(inName)
self.progressBar.setValue(30)
if vLayer == "Error":
QMessageBox.information(self, self.tr("Define current projection"), self.tr("Cannot define projection for PostGIS data...yet!"))
else:
srsDefine = None
if self.rdoProjection.isChecked():
srsDefine = self.crs
else:
destLayer = ftools_utils.getVectorLayerByName(self.cmbLayer.currentText())
srsDefine = destLayer.crs()
if srsDefine == vLayer.crs():
responce = QMessageBox.question(self, self.tr("Define current projection"),
self.tr("Identical output spatial reference system chosen\n\nAre you sure you want to proceed?"),
QMessageBox.Yes, QMessageBox.No, QMessageBox.NoButton)
if responce == QMessageBox.No:
self.progressBar.setValue(0)
self.buttonOk.setEnabled(True)
return
provider = vLayer.dataProvider()
self.progressBar.setValue(35)
inPath = provider.dataSourceUri()
p = re.compile("\|.*")
inPath = p.sub("", inPath)
self.progressBar.setValue(40)
if inPath.endswith(".shp"):
inPath = inPath[:-4]
self.progressBar.setValue(55)
if not srsDefine.isValid():
QMessageBox.information(self, self.tr("Define current projection"), self.tr("Output spatial reference system is not valid"))
else:
self.progressBar.setValue(60)
outputWkt = srsDefine.toWkt()
self.progressBar.setValue(65)
outputFile = QFile(inPath + ".prj")
outputFile.open(QIODevice.WriteOnly | QIODevice.Text)
outputPrj = QTextStream(outputFile)
outputPrj << outputWkt
outputPrj.flush()
outputFile.close()
self.progressBar.setValue(70)
checkFile = QFile(inPath + ".qpj")
if checkFile.exists():
checkFile.open(QIODevice.WriteOnly | QIODevice.Text)
outputPrj = QTextStream(checkFile)
#.........这里部分代码省略.........
示例8: ConnectionWidget
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
#.........这里部分代码省略.........
@pyqtSlot(bool)
def on_pushButtonOpenFile_clicked(self):
self.loadDatabase()
if self.isDBConnected():
self.connectionChanged.emit()
@pyqtSlot(int)
def on_tabWidget_currentChanged(self):
self.filename = ''
self.comboBoxPostgis.setCurrentIndex(0)
self.dbLoaded = False
self.epsg = 0
self.crs = None
self.dbVersion = ''
self.spatialiteFileEdit.setReadOnly(True)
self.spatialiteFileEdit.setText(self.filename)
self.postGISCrsEdit.setText('')
self.postGISCrsEdit.setReadOnly(True)
self.spatialiteCrsEdit.setText('')
self.spatialiteCrsEdit.setReadOnly(True)
self.edgvSpatialiteVersionEdit.setText('')
self.edgvSpatialiteVersionEdit.setReadOnly(True)
self.edgvPostgisVersionEdit.setText('')
self.edgvPostgisVersionEdit.setReadOnly(True)
#Setting the database type
if self.tabWidget.currentIndex() == 0:
self.isSpatialite = True
else:
self.isSpatialite = False
def loadDatabase(self):
self.closeDatabase()
if self.isSpatialite:
self.abstractDb = self.abstractDbFactory.createDbFactory('QSQLITE')
self.abstractDb.connectDatabase()
self.spatialiteFileEdit.setText(self.abstractDb.db.databaseName())
self.edgvSpatialiteVersionEdit.setText(self.abstractDb.getDatabaseVersion())
else:
self.abstractDb = self.abstractDbFactory.createDbFactory('QPSQL')
self.abstractDb.connectDatabase(self.comboBoxPostgis.currentText())
self.edgvPostgisVersionEdit.setText(self.abstractDb.getDatabaseVersion())
try:
self.abstractDb.checkAndOpenDb()
self.dbLoaded = True
self.dbVersion = self.abstractDb.getDatabaseVersion()
if self.dbVersion == '-1':
self.problemOccurred.emit(self.tr('This is not a valid DsgTools database!'))
else:
self.setCRS()
except Exception as e:
QgsMessageLog.logMessage(e.args[0], "DSG Tools Plugin", QgsMessageLog.CRITICAL)
def setCRS(self):
try:
self.epsg = self.abstractDb.findEPSG()
if self.epsg == -1:
self.problemOccurred.emit(self.tr('Coordinate Reference System not set or invalid!'))
else:
self.crs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.isSpatialite:
self.spatialiteCrsEdit.setText(self.crs.description())
self.spatialiteCrsEdit.setReadOnly(True)
else:
self.postGISCrsEdit.setText(self.crs.description())
self.postGISCrsEdit.setReadOnly(True)
except:
pass
def populatePostGISConnectionsCombo(self):
self.comboBoxPostgis.clear()
self.comboBoxPostgis.addItem(self.tr('Select Database'))
self.comboBoxPostgis.addItems(self.getPostGISConnections())
def isDBConnected(self):
return self.dbLoaded
def getDBVersion(self):
return self.abstractDb.getDatabaseVersion()
def getQmlPath(self):
return self.abstractDb.getQmlDir()
@pyqtSlot(bool)
def on_addConnectionButton_clicked(self):
newConnectionDialog = ServerDBExplorer(self)
retvalue = newConnectionDialog.exec_()
self.populatePostGISConnectionsCombo()
return retvalue
def getPostGISConnections(self):
settings = QSettings()
settings.beginGroup('PostgreSQL/connections')
currentConnections = settings.childGroups()
settings.endGroup()
return currentConnections
示例9: ConnectionWidget
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
#.........这里部分代码省略.........
else:
self.abstractDb = self.abstractDbFactory.createDbFactory('QPSQL')
(host, port, user, password) = self.serverWidget.getServerParameters()
dbName = self.comboBoxPostgis.currentText()
self.abstractDb.connectDatabaseWithParameters(host, port, dbName, user, password)
self.edgvPostgisVersionEdit.setText(self.abstractDb.getDatabaseVersion())
serverName = self.serverWidget.serversCombo.currentText()
newText = dbName + self.tr(' on ') + serverName
self.mGroupBox.setToolTip(newText)
# self.mGroupBox.setTitle(newText)
self.abstractDb.checkAndOpenDb()
self.dbLoaded = True
self.dbVersion = self.abstractDb.getDatabaseVersion()
self.abstractDb.checkAndCreateStyleTable()
self.styles = self.abstractDb.getStyleDict(self.dbVersion)
self.styleChanged.emit(self.styles)
self.dbChanged.emit(self.abstractDb)
if self.dbVersion == '-1':
self.problemOccurred.emit(self.tr('This is not a valid DsgTools database!'))
else:
self.setCRS()
except Exception as e:
self.problemOccurred.emit(self.tr('A problem occurred! Check log for details.'))
QgsMessageLog.logMessage(':'.join(e.args), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
def setCRS(self):
"""
Sets the CRS information
"""
try:
self.epsg = self.abstractDb.findEPSG()
if self.epsg == -1:
self.problemOccurred.emit(self.tr('Coordinate Reference System not set or invalid!'))
else:
self.crs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.isSpatialite:
self.spatialiteCrsEdit.setText(self.crs.description())
self.spatialiteCrsEdit.setReadOnly(True)
else:
self.postGISCrsEdit.setText(self.crs.description())
self.postGISCrsEdit.setReadOnly(True)
except Exception as e:
self.problemOccurred.emit(self.tr('A problem occurred! Check log for details.'))
QgsMessageLog.logMessage(':'.join(e.args), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
def isDBConnected(self):
"""
Checks if the database is already loaded
"""
return self.dbLoaded
def getDBVersion(self):
"""
Gets the database version
"""
ret = ''
try:
ret = self.abstractDb.getDatabaseVersion()
except Exception as e:
self.problemOccurred.emit(self.tr('A problem occurred! Check log for details.'))
QgsMessageLog.logMessage(':'.join(e.args), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
return ret
def getQmlPath(self):
"""
Gets the QML path
"""
ret = ''
try:
ret = self.abstractDb.getQmlDir()
except Exception as e:
self.problemOccurred.emit(self.tr('A problem occurred! Check log for details.'))
QgsMessageLog.logMessage(':'.join(e.args), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
return ret
def getDatabasesFromServer(self):
"""
Gets databases from server
"""
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
try:
if self.serverWidget.abstractDb:
dbList = self.serverWidget.abstractDb.getEDGVDbsFromServer(parentWidget = self)
dbList.sort()
self.comboBoxPostgis.clear()
self.comboBoxPostgis.addItem(self.tr('Select Database'))
for db, version in dbList:
self.comboBoxPostgis.addItem(db)
else:
self.setInitialState()
return
except Exception as e:
QMessageBox.critical(self, self.tr('Critical!'), ':'.join(e.args))
self.setInitialState()
self.setInitialState()
QApplication.restoreOverrideCursor()
示例10: CriaSpatialiteDialog
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
class CriaSpatialiteDialog(QtGui.QDialog, FORM_CLASS):
def __init__(self, parent=None):
"""Constructor."""
super(CriaSpatialiteDialog, self).__init__(parent)
# Set up the user interface from Designer.
# After setupUI you can access any designer object by doing
# self.<objectname>, and you can use autoconnect slots - see
# http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html
# #widgets-and-dialogs-with-auto-connect
self.setupUi(self)
self.filepath = ""
self.carregado = False
self.coordSysDefinido = False
self.epsgCriaSpatialite = 0
self.srsCriaSpatialite = ''
self.sqliteFileName = ''
self.bar = QgsMessageBar()
self.setLayout(QtGui.QGridLayout(self))
self.layout().setContentsMargins(0,0,0,0)
self.layout().setAlignment(QtCore.Qt.AlignTop)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
self.bar.setSizePolicy(sizePolicy)
self.layout().addWidget(self.bar, 0,0,1,1)
QtCore.QObject.connect(self.pushButtonBuscarPastaDestinoCriaSpatialite, QtCore.SIGNAL(("clicked()")), self.definePastaDestino)
QtCore.QObject.connect(self.pushButtonBuscarSistCoordCriaSpatialite, QtCore.SIGNAL(("clicked()")), self.setaSistCoordCriaSpatialite)
QtCore.QObject.connect(self.pushButtonOkCriaSpatialite, QtCore.SIGNAL(("clicked()")), self.okselecionadoCriaSpatialite)
def getTemplateLocation(self):
"""
gets the template location
"""
currentPath = os.path.dirname(__file__)
if self.versionComboBox.currentText() == '2.1.3':
edgvPath = os.path.join(currentPath, 'template', '213', 'seed_edgv213.sqlite')
elif self.versionComboBox.currentText() == 'FTer_2a_Ed':
edgvPath = os.path.join(currentPath, 'template', 'FTer_2a_Ed', 'seed_edgvfter_2a_ed.sqlite')
elif self.versionComboBox.currentText() == '3.0':
edgvPath = os.path.join(currentPath, 'template', '3', 'seed_edgv3.sqlite')
return edgvPath
def restauraInicio(self):
"""
Stes the initial state
"""
self.filepath = ""
self.carregado = False
self.coordSysDefinido = False
self.epsgCriaSpatialite = 0
self.srsCriaSpatialite = ''
self.sqliteFileName = ''
self.pastaDestinoCriaSpatialiteLineEdit.setText("")
self.coordSysCriaSpatialiteLineEdit.setText("")
self.nomeLineEdit.setText("")
def definePastaDestino(self):
"""
Defines destination folder
"""
fd = QtGui.QFileDialog()
self.filepath = fd.getExistingDirectory()
if self.filepath <> "":
self.carregado = True
self.pastaDestinoCriaSpatialiteLineEdit.setText(self.filepath)
def setaSistCoordCriaSpatialite(self):
"""
Opens the CRS selector
"""
projSelector = QgsGenericProjectionSelector()
projSelector.setMessage(theMessage=self.tr('Please, select the coordinate system'))
projSelector.exec_()
try:
self.epsgCriaSpatialite = int(projSelector.selectedAuthId().split(':')[-1])
self.srsCriaSpatialite = QgsCoordinateReferenceSystem(self.epsgCriaSpatialite, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.srsCriaSpatialite <> "":
self.coordSysDefinido = True
self.coordSysCriaSpatialiteLineEdit.setText(self.srsCriaSpatialite.description())
except:
self.bar.pushMessage("", self.tr('Please, select the coordinate system'), level=QgsMessageBar.WARNING)
pass
def copiaSemente(self, destino, srid):
"""
Copies the spatialite seed template
"""
f = open(self.getTemplateLocation(),'rb')
g = open(destino,'wb')
x = f.readline()
while x:
g.write(x)
x = f.readline()
g.close()
con = sqlite3.connect(destino)
cursor = con.cursor()
srid_sql = (srid,)
#.........这里部分代码省略.........
示例11: LoadByClass
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
#.........这里部分代码省略.........
def getDatabaseVersion(self):
self.dbVersion = self.utils.getDatabaseVersion(self.db)
self.qmlPath = self.utils.getQmlDir(self.db)
def listClassesFromDatabase(self):
self.classesListWidget.clear()
self.getDatabaseVersion()
sql = self.gen.getTablesFromDatabase()
query = QSqlQuery(sql, self.db)
while query.next():
if self.isSpatialite:
tableName = query.value(0)
layerName = tableName
else:
tableSchema = query.value(0)
tableName = query.value(1)
layerName = tableSchema+'.'+tableName
if tableName.split("_")[-1] == "p" or tableName.split("_")[-1] == "l" \
or tableName.split("_")[-1] == "a":
item = QtGui.QListWidgetItem(layerName)
self.classesListWidget.addItem(item)
self.classesListWidget.sortItems()
self.setCRS()
def setCRS(self):
try:
self.epsg = self.utils.findEPSG(self.db)
if self.epsg == -1:
self.bar.pushMessage("", self.tr("Coordinate Reference System not set or invalid!"), level=QgsMessageBar.WARNING)
else:
self.crs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.isSpatialite:
self.spatialiteCrsEdit.setText(self.crs.description())
self.spatialiteCrsEdit.setReadOnly(True)
else:
self.postGISCrsEdit.setText(self.crs.description())
self.postGISCrsEdit.setReadOnly(True)
except:
pass
@pyqtSlot(int)
def on_comboBoxPostgis_currentIndexChanged(self):
if self.comboBoxPostgis.currentIndex() > 0:
self.loadDatabase()
def loadDatabase(self):
self.closeDatabase()
if self.isSpatialite:
(self.filename, self.db) = self.utils.getSpatialiteDatabase()
if self.filename:
self.spatialiteFileEdit.setText(self.filename)
else:
self.db = self.utils.getPostGISDatabase(self.comboBoxPostgis.currentText())
try:
if not self.db.open():
QgsMessageLog.logMessage(self.db.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
else:
self.dbLoaded = True
self.listClassesFromDatabase()
except:
pass
def populatePostGISConnectionsCombo(self):
self.comboBoxPostgis.clear()
self.comboBoxPostgis.addItem(self.tr("Select Database"))
示例12: LoadByCategory
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import description [as 别名]
#.........这里部分代码省略.........
for i in listedItems:
item = self.listWidgetCategoryFrom.takeItem(self.listWidgetCategoryFrom.row(i))
self.listWidgetCategoryTo.addItem(item)
self.listWidgetCategoryTo.sortItems()
def deselectOne(self):
listedItems = self.listWidgetCategoryTo.selectedItems()
for i in listedItems:
item = self.listWidgetCategoryTo.takeItem(self.listWidgetCategoryTo.row(i))
self.listWidgetCategoryFrom.addItem(item)
self.listWidgetCategoryFrom.sortItems()
def setAllGroup(self):
if self.checkBoxAll.isChecked():
self.checkBoxPoint.setCheckState(2)
self.checkBoxLine.setCheckState(2)
self.checkBoxPolygon.setCheckState(2)
else:
self.checkBoxPoint.setCheckState(0)
self.checkBoxLine.setCheckState(0)
self.checkBoxPolygon.setCheckState(0)
def pushMessage(self, msg):
self.bar.pushMessage('', msg, level=QgsMessageBar.WARNING)
def setCRS(self):
try:
self.epsg = self.utils.findEPSG(self.db)
if self.epsg == -1:
self.bar.pushMessage("", self.tr("Coordinate Reference System not set or invalid!"), level=QgsMessageBar.WARNING)
else:
self.crs = QgsCoordinateReferenceSystem(self.epsg, QgsCoordinateReferenceSystem.EpsgCrsId)
if self.isSpatialite:
self.spatialiteCrsEdit.setText(self.crs.description())
self.spatialiteCrsEdit.setReadOnly(True)
else:
self.postGISCrsEdit.setText(self.crs.description())
self.postGISCrsEdit.setReadOnly(True)
except:
pass
def cancel(self):
self.restoreInitialState()
self.close()
def getSelectedItems(self):
lista = self.classesListWidget.selectedItems()
self.selectedClasses = []
tam = len(lista)
for i in range(tam):
self.selectedClasses.append(lista[i].text())
self.selectedClasses.sort()
def okSelected(self):
try:
QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
if self.checkBoxOnlyWithElements.isChecked():
self.setLayersWithElements()
ponto = self.pointWithElement
linha = self.lineWithElement
area = self.polygonWithElement
else:
ponto = self.point
linha = self.line
area = self.polygon