本文整理汇总了Python中qgis.core.QgsRasterLayer.setExtent方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRasterLayer.setExtent方法的具体用法?Python QgsRasterLayer.setExtent怎么用?Python QgsRasterLayer.setExtent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsRasterLayer
的用法示例。
在下文中一共展示了QgsRasterLayer.setExtent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: addLayer
# 需要导入模块: from qgis.core import QgsRasterLayer [as 别名]
# 或者: from qgis.core.QgsRasterLayer import setExtent [as 别名]
def addLayer(self, index, old=None, addToMap=True):
item = index.data(role=Qt.UserRole)
if not isinstance(item, LayerItem):
return
if not self.plugin.setLoading(True):
return
addedData = []
if isinstance(item, VectorItem):
connector = self.getConnector()
self.plugin.msgBar = ProgressMessageBar(self.iface, self.tr("Downloading layer '%s'...")%item.name, connector=connector)
self.plugin.msgBar.setValue(10)
connector.downloadingProgress.connect(self.plugin.updateDownloadProgress)
data = connector.diviGetLayerFeatures(item.id)
layers = []
if data:
permissions = connector.getUserPermission(item.id, 'layer')
self.plugin.msgBar.setBoundries(50, 50)
#Disable rendering for changing symbology
self.iface.mapCanvas().setRenderFlag(False)
layers = self.plugin.addLayer(data['features'], item, permissions, addToMap=addToMap)
for layer in layers:
#Set symbols based on layer geometry type
item.setQgisStyle(layer)
self.iface.layerTreeView().refreshLayerSymbology(layer.id())
self.iface.mapCanvas().setRenderFlag(True)
addedData.extend( layers )
item.items.extend( addedData )
self.plugin.msgBar.setValue(100)
aborted = self.plugin.msgBar.aborted
self.plugin.msgBar.close()
self.plugin.msgBar = None
if aborted:
# fix_print_with_import
print('Aborted')
elif not layers:
#User can select geometry type in message bar
widget = self.iface.messageBar().createMessage(
self.tr("Warning"),
self.tr(u"Layer '%s' is empty. To open it in QGIS you need to select geometry type.") % item.name
)
button = QToolButton(widget)
button.setText(self.tr("Add layer as..."))
button.setPopupMode(QToolButton.InstantPopup)
menu = QMenu(button)
def load_layer_as(geom_type):
self.plugin.loadLayerType(item = item, geom_type = geom_type)
self.iface.messageBar().clearWidgets()
menu.addAction(QgsApplication.getThemeIcon('/mIconPointLayer.svg'), self.tr('Points'), lambda: load_layer_as(geom_type='MultiPoint'))
menu.addAction(QgsApplication.getThemeIcon('/mIconLineLayer.svg'), self.tr('Linestring'), lambda: load_layer_as(geom_type='MultiLineString'))
menu.addAction(QgsApplication.getThemeIcon('/mIconPolygonLayer.svg'), self.tr('Polygons'), lambda: load_layer_as(geom_type='MultiPolygon'))
button.setMenu( menu )
widget.layout().addWidget(button)
self.iface.messageBar().pushWidget(widget, Qgis.Warning)
elif isinstance(item, TableItem):
if Qgis.QGIS_VERSION_INT < 21400:
self.iface.messageBar().pushMessage('DIVI',
self.tr(u'QGIS 2.14 or later is required for loading DIVI tables.'),
Qgis.Critical,
duration = 3
)
else:
self.plugin.msgBar = ProgressMessageBar(self.iface, self.tr("Downloading table '%s'...")%item.name)
self.plugin.msgBar.setValue(10)
connector = self.getConnector()
connector.downloadingProgress.connect(self.plugin.updateDownloadProgress)
data = connector.diviGetTableRecords(item.id)
if data:
permissions = connector.getUserPermission(item.id, 'table')
self.plugin.msgBar.setBoundries(50, 50)
addedData.append( self.plugin.addTable(data['header'], data['data'], item, permissions, addToMap=addToMap) )
item.items.extend( addedData )
self.plugin.msgBar.setValue(100)
self.plugin.msgBar.close()
self.plugin.msgBar = None
elif isinstance(item, RasterItem):
if Qgis.QGIS_VERSION_INT < 21800:
self.iface.messageBar().pushMessage('DIVI',
self.tr(u'QGIS 2.18 or later is required for loading DIVI rasters.'),
Qgis.Critical,
duration = 3
)
else:
uri = item.getUri(self.token)
uri = uri.replace("b'", "").replace("'", "")
QgsMessageLog.logMessage( uri, 'DIVI')
r = QgsRasterLayer(uri, item.name, 'wms')
r.setCustomProperty('DiviId', item.id)
if item.extent is not None:
#Set extent for raster layer
bbox = self.transform2mercator.transformBoundingBox( QgsRectangle(
item.extent['st_xmin'],
item.extent['st_ymin'],
item.extent['st_xmax'],
item.extent['st_ymax']
))
r.setExtent( bbox )
addedData.append( r )
item.items.extend( addedData )
if addToMap:
#.........这里部分代码省略.........