本文整理汇总了Python中qgis.gui.QgsMapCanvas.zoomToFullExtent方法的典型用法代码示例。如果您正苦于以下问题:Python QgsMapCanvas.zoomToFullExtent方法的具体用法?Python QgsMapCanvas.zoomToFullExtent怎么用?Python QgsMapCanvas.zoomToFullExtent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.gui.QgsMapCanvas
的用法示例。
在下文中一共展示了QgsMapCanvas.zoomToFullExtent方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Dialog
# 需要导入模块: from qgis.gui import QgsMapCanvas [as 别名]
# 或者: from qgis.gui.QgsMapCanvas import zoomToFullExtent [as 别名]
class Dialog(QtGui.QWidget, Ui_DialogBase):
def __init__(self):
QtGui.QWidget.__init__(self)
self.setupUi(self)
self.widget = QgsMapCanvas()
self.show()
def on_pushButton_clicked(self):
"""Wow - an autoconnected slot!"""
print 'Click!'
myPath = os.path.join(
os.path.dirname(__file__),
'landsat.tif')
print myPath
layer = QgsRasterLayer(myPath, 'A Layer')
QgsMapLayerRegistry.instance().addMapLayers([layer])
layer.setGrayBandName(layer.bandName(1))
layer.setDrawingStyle(QgsRasterLayer.SingleBandPseudoColor)
layer.setColorShadingAlgorithm(QgsRasterLayer.PseudoColorShader)
layer.saveDefaultStyle()
self.widget.zoomToFullExtent()
print self.widget.extent().toString()
print layer.extent().toString()
self.widget.refresh()
示例2: ViewerWnd
# 需要导入模块: from qgis.gui import QgsMapCanvas [as 别名]
# 或者: from qgis.gui.QgsMapCanvas import zoomToFullExtent [as 别名]
class ViewerWnd( QMainWindow ):
def __init__( self, app, dictOpts ):
QMainWindow.__init__( self )
self.setWindowTitle( "PostGIS Layer Viewer - v.1.6.1" )
self.setTabPosition( Qt.BottomDockWidgetArea, QTabWidget.North )
self.canvas = QgsMapCanvas()
self.canvas.setCanvasColor( Qt.white )
self.canvas.useImageToRender( True )
self.canvas.enableAntiAliasing( True )
self.setCentralWidget( self.canvas )
actionZoomIn = QAction( QIcon( imgs_dir + "mActionZoomIn.png" ), QString( "Zoom in" ), self )
actionZoomOut = QAction( QIcon( imgs_dir + "mActionZoomOut.png" ), QString( "Zoom out" ), self )
actionPan = QAction( QIcon( imgs_dir + "mActionPan.png" ), QString( "Pan" ), self )
actionZoomFullExtent = QAction( QIcon( imgs_dir + "mActionZoomFullExtent.png" ), QString( "Zoom full" ), self )
actionZoomIn.setCheckable( True )
actionZoomOut.setCheckable( True )
actionPan.setCheckable( True )
self.connect(actionZoomIn, SIGNAL( "triggered()" ), self.zoomIn )
self.connect(actionZoomOut, SIGNAL( "triggered()" ), self.zoomOut )
self.connect(actionPan, SIGNAL( "triggered()" ), self.pan )
self.connect(actionZoomFullExtent, SIGNAL( "triggered()" ), self.zoomFullExtent )
self.actionGroup = QActionGroup( self )
self.actionGroup.addAction( actionPan )
self.actionGroup.addAction( actionZoomIn )
self.actionGroup.addAction( actionZoomOut )
# Create the toolbar
self.toolbar = self.addToolBar( "Map tools" )
self.toolbar.addAction( actionPan )
self.toolbar.addAction( actionZoomIn )
self.toolbar.addAction( actionZoomOut )
self.toolbar.addAction( actionZoomFullExtent )
# Create the map tools
self.toolPan = QgsMapToolPan( self.canvas )
self.toolPan.setAction( actionPan )
self.toolZoomIn = QgsMapToolZoom( self.canvas, False ) # false = in
self.toolZoomIn.setAction( actionZoomIn )
self.toolZoomOut = QgsMapToolZoom( self.canvas, True ) # true = out
self.toolZoomOut.setAction( actionZoomOut )
# Create the statusbar
self.statusbar = QStatusBar( self )
self.statusbar.setObjectName( "statusbar" )
self.setStatusBar( self.statusbar )
self.lblXY = QLabel()
self.lblXY.setFrameStyle( QFrame.Box )
self.lblXY.setMinimumWidth( 170 )
self.lblXY.setAlignment( Qt.AlignCenter )
self.statusbar.setSizeGripEnabled( False )
self.statusbar.addPermanentWidget( self.lblXY, 0 )
self.lblScale = QLabel()
self.lblScale.setFrameStyle( QFrame.StyledPanel )
self.lblScale.setMinimumWidth( 140 )
self.statusbar.addPermanentWidget( self.lblScale, 0 )
self.createLegendWidget() # Create the legend widget
self.connect( app, SIGNAL( "loadPgLayer" ), self.loadLayer )
self.connect( self.canvas, SIGNAL( "scaleChanged(double)" ),
self.changeScale )
self.connect( self.canvas, SIGNAL( "xyCoordinates(const QgsPoint&)" ),
self.updateXY )
self.pan() # Default
self.plugins = Plugins( self, self.canvas, dictOpts['-h'], dictOpts['-p'], dictOpts['-d'], dictOpts['-U'], dictOpts['-W'] )
self.createAboutWidget()
self.layerSRID = '-1'
self.loadLayer( dictOpts )
def zoomIn( self ):
self.canvas.setMapTool( self.toolZoomIn )
def zoomOut( self ):
self.canvas.setMapTool( self.toolZoomOut )
def pan( self ):
self.canvas.setMapTool( self.toolPan )
def zoomFullExtent( self ):
self.canvas.zoomToFullExtent()
def about( self ):
pass
def createLegendWidget( self ):
""" Create the map legend widget and associate it to the canvas """
self.legend = Legend( self )
self.legend.setCanvas( self.canvas )
self.legend.setObjectName( "theMapLegend" )
#.........这里部分代码省略.........
示例3: WidgetResult
# 需要导入模块: from qgis.gui import QgsMapCanvas [as 别名]
# 或者: from qgis.gui.QgsMapCanvas import zoomToFullExtent [as 别名]
#.........这里部分代码省略.........
self.ui.widget_map.height()-map_top-2*UI_PADDING) # height
# adjust map menu
self.ui.widget_map_menu_r.move(
self.ui.widget_map.width()-self.ui.widget_map_menu_r.width(), # right align with map panel
0)
# logo
self.ui.lb_gem_logo.move(self.width()-self.ui.lb_gem_logo.width(), self.ui.lb_gem_logo.y())
@logUICall
@pyqtSlot()
def mapPan(self):
""" event handler for btn_pan - pan map """
self.canvas.unsetMapTool(self.toolInfo)
self.canvas.setMapTool(self.toolPan)
@logUICall
@pyqtSlot()
def mapZoomIn(self):
""" event handler for btn_zoom_in - zoom in on map """
self.canvas.unsetMapTool(self.toolInfo)
self.canvas.setMapTool(self.toolZoomIn)
@logUICall
@pyqtSlot()
def mapZoomOut(self):
""" event handler for btn_zoom_out - zoom out on map """
self.canvas.unsetMapTool(self.toolInfo)
self.canvas.setMapTool(self.toolZoomOut)
@logUICall
@pyqtSlot()
def mapZoomFull(self):
""" event handler for btn_zoom_full - zoom to full map """
self.canvas.zoomToFullExtent()
def checkRendering(self, changed):
self.canvas.setRenderFlag(True)
@logUICall
@pyqtSlot()
def stopRendering(self):
self.canvas.setRenderFlag(False)
@logUICall
@pyqtSlot()
def mapZoomLayer(self):
self.canvas.unsetMapTool(self.toolInfo)
cur_layer_name = self.ui.cb_layer_selector.currentText()
if cur_layer_name.isEmpty():
return
self.zoomToLayer(self.map_layers[self.LAYER_NAMES.index(cur_layer_name)])
@logUICall
@pyqtSlot()
def mapEditTheme(self):
""" event handler for btn_edit - identify item on map """
cur_layer_name = self.ui.cb_layer_selector.currentText()
if cur_layer_name.isEmpty():
return
try:
cur_layer_idx = self.LAYER_NAMES.index(cur_layer_name)
# build layer render property Dialog for selected layer
dlg_render = QDialog()
dlg_render.setWindowTitle(get_ui_string('widget.result.renderer.settings'))
dlg_render.setModal(True)
示例4: responseComplete
# 需要导入模块: from qgis.gui import QgsMapCanvas [as 别名]
# 或者: from qgis.gui.QgsMapCanvas import zoomToFullExtent [as 别名]
def responseComplete(self):
request = self.serverIface.requestHandler()
params = request.parameterMap( )
# Check if dynamic layers params are passed
# If not, do not change QGIS Server response
if params['SERVICE'].lower() != 'dynamiclayers':
return
# Check if needed params are set
if 'DLSOURCELAYER' not in params or 'DLEXPRESSION' not in params:
# Change response
request.clearHeaders()
request.setInfoFormat('text/json')
request.setHeader('Status', '200')
request.setHeader('Content-type', 'text/json')
request.clearBody()
body = {
'status': 0,
'message': 'Missing parameters DLSOURCELAYER or DLEXPRESSION',
'childProject': None
}
request.appendBody( json.dumps( body ) )
return
# Get layer and expression
player = params['DLSOURCELAYER']
pexp = params['DLEXPRESSION']
#~ QgsMessageLog.logMessage( "DynamicLayers - layer = %s - expression = %s" % ( player, pexp ))
# Open project
pmap = params['MAP']
self.projectPath = pmap
pfile = QFileInfo( pmap )
p = QgsProject.instance()
# Define canvas and layer treet root
# Needed to write canvas and layer-tree-root in project file
canvas = QgsMapCanvas()
treeRoot = p.layerTreeRoot()
bridge = QgsLayerTreeMapCanvasBridge( treeRoot, canvas )
bridge.setCanvasLayers()
canvas.zoomToFullExtent()
self.canvas = canvas
self.bridge = bridge
self.composers = []
self.project = p
self.project.readProject.connect( bridge.readProject )
self.project.readProject.connect( self.loadComposersFromProject )
self.project.writeProject.connect( bridge.writeProject )
self.project.writeProject.connect( self.writeOldLegend )
self.project.writeProject.connect( self.writeComposers )
# read project
p.read( pfile )
# Get an instance of engine class
dle = DynamicLayersEngine()
# Set the dynamic layers list
dle.setDynamicLayersList()
if not dle.dynamicLayers:
QgsMessageLog.logMessage( "DynamicLayers - no dynamic layers found")
# Change response
request.clearHeaders()
request.setInfoFormat('text/json')
request.setHeader('Status', '200')
request.setHeader('Content-type', 'text/json')
request.setHeader('Content-Disposition', 'attachment; filename="DynamicLayers.json"')
request.clearBody()
body = {
'status': 0,
'message': 'No dynamic layers found in parent project',
'childProject': None
}
request.appendBody( json.dumps( body ) )
return
# Set search and replace dictionary
lr = QgsMapLayerRegistry.instance()
sourceLayerList = [ layer for lname,layer in lr.mapLayers().items() if layer.name() == player ]
if len(sourceLayerList ) != 1:
QgsMessageLog.logMessage( "DynamicLayers - source layer not in project")
# Change response
request.clearHeaders()
request.setInfoFormat('text/json')
request.setHeader('Status', '200')
request.setHeader('Content-type', 'text/json')
request.setHeader('Content-Disposition', 'attachment; filename="DynamicLayers.json"')
request.clearBody()
body = {
'status': 0,
'message': 'The source layer cannot be found in the project',
'childProject': None
}
request.appendBody( json.dumps( body ) )
return
sourceLayer = sourceLayerList[0]
#.........这里部分代码省略.........
示例5: PdfMaker
# 需要导入模块: from qgis.gui import QgsMapCanvas [as 别名]
# 或者: from qgis.gui.QgsMapCanvas import zoomToFullExtent [as 别名]
#.........这里部分代码省略.........
self.canvas.enableAntiAliasing(True)
self.template_path = template_path
def __del__(self):
"""Destructor."""
del self.app
def _load_template(self):
"""Load the template.
:return: QgsComposition containing the loaded template.
:rtype: QgsComposition
"""
template_file = file(self.template_path)
template_content = template_file.read()
template_file.close()
document = QDomDocument()
document.setContent(template_content)
composition = QgsComposition(self.canvas.mapSettings())
# You can use this to replace any string like this [key]
# in the template with a new value. e.g. to replace
# [date] pass a map like this {'date': '1 Jan 2012'}
substitution_map = {
'DATE_TIME_START': 'foo',
'DATE_TIME_END': 'bar'}
composition.loadFromTemplate(document, substitution_map)
return composition
def _load_layers(self):
"""Manually load all the layers for our project.
:return: A list of QgsMapLayer instances.
:rtype: list
"""
layers = []
# First the RW layer
host = 'db'
port = '5432'
user = 'docker'
password = 'docker'
dbname = 'gis'
uri = QgsDataSourceURI()
uri.setConnection(host, port, dbname, user, password)
schema = 'public'
table = 'flood_mapper_rw'
geometry_column = 'geometry'
where_clause = ''
title = 'RW'
uri.setDataSource(schema, table, geometry_column, where_clause)
layer = QgsVectorLayer(uri.uri(), title, 'postgres')
QgsMapLayerRegistry.instance().addMapLayer(layer, False)
canvas_layer = QgsMapCanvasLayer(layer)
layers.append(canvas_layer)
# Now the JK layer
path = './data/jk.shp'
title = 'JK'
layer = QgsVectorLayer(path, title, 'ogr')
QgsMapLayerRegistry.instance().addMapLayer(layer, False)
canvas_layer = QgsMapCanvasLayer(layer)
layers.append(canvas_layer)
return layers
def make_pdf(self, pdf_path):
"""Generate a pdf for the given project and template files.
:param pdf_path: Absolute path for the output PDF file.
:type pdf_path: str
"""
layers = self._load_layers()
self.canvas.setLayerSet(layers)
if self.canvas.layerCount() < 1:
print 'No layers loaded from this project, exiting.'
return
self.canvas.setDestinationCrs(QgsCoordinateReferenceSystem('EPSG:3857'))
self.canvas.setCrsTransformEnabled(True)
self.canvas.zoomToFullExtent()
print 'Extent: %s' % self.canvas.mapSettings().extent().toString()
# self._load_project()
composition = self._load_template()
# You must set the id in the template
map_item = composition.getComposerItemById('map')
map_item.setMapCanvas(self.canvas)
map_item.zoomToExtent(self.canvas.extent())
# You must set the id in the template
legend_item = composition.getComposerItemById('legend')
legend_item.updateLegend()
composition.refreshItems()
composition.exportAsPDF(pdf_path)
QgsProject.instance().clear()