Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
65 lines (54 sloc) 2.79 KB
# -*- coding: utf-8 -*-
"""
/***************************************************************************
ScreenShotSampleDialog
A QGIS plugin
マップを画像で保存するサンプルです。
Generated by Plugin Builder: http://g-sherman.github.io/Qgis-Plugin-Builder/
-------------------
begin : 2019-11-29
git sha : $Format:%H$
copyright : (C) 2019 by Unemployed
email : chiakikungm@gmail.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. *
* *
***************************************************************************/
"""
import qgis.core
import os
from qgis.PyQt import uic
from qgis.PyQt import QtWidgets
# This loads your .ui file so that PyQt can populate your plugin with the elements from Qt Designer
FORM_CLASS, _ = uic.loadUiType(os.path.join(
os.path.dirname(__file__), 'screenShot_sample_dialog_base.ui'))
class ScreenShotSampleDialog(QtWidgets.QDialog, FORM_CLASS):
def __init__(self, parent=None):
"""Constructor."""
super(ScreenShotSampleDialog, self).__init__(parent)
# Set up the user interface from Designer through FORM_CLASS.
# After self.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)
def exportMap(self):
qgis.utils.iface.mapCanvas().saveAsImage( "d:/{}.png".format( self.ids.pop() ) )
if self.ids:
self.setNextFeatureExtent()
else: # We're done
qgis.utils.iface.mapCanvas().mapCanvasRefreshed.disconnect( self.exportMap )
def setNextFeatureExtent(self):
qgis.utils.iface.mapCanvas().zoomToFeatureIds( self.layer, [self.ids[-1]] )
qgis.utils.iface.mapCanvas().zoomScale(250000) # 1:250000
def pushExec(self):
self.layer = qgis.utils.iface.activeLayer()
self.ids = self.layer.allFeatureIds()
qgis.utils.iface.mapCanvas().mapCanvasRefreshed.connect( self.exportMap )
self.setNextFeatureExtent() # Let's start
self.close()
You can’t perform that action at this time.