本文整理汇总了Python中qgis.core.QgsMapRendererParallelJob类的典型用法代码示例。如果您正苦于以下问题:Python QgsMapRendererParallelJob类的具体用法?Python QgsMapRendererParallelJob怎么用?Python QgsMapRendererParallelJob使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QgsMapRendererParallelJob类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: createImageParams
def createImageParams():
def finished():
def addParams():
def getJsonImages():
vmap = {}
for l in self.paramProcess['layerImages']:
vmap[ l.name() ] = l.source()
return json.dumps( vmap )
e = self.paramProcess['canvas'].extent()
imgWidth, imgHeight = image.width(), image.height()
resX, resY = e.width() / imgWidth, e.height() / imgHeight
self.paramProcess['json_images'] = getJsonImages()
self.paramProcess['crs_map'] = self.paramProcess['canvas'].mapSettings().destinationCrs().authid()
self.paramProcess['extent_map'] = e.asWktCoordinates() # xMin, yMin, xMax, yMax
self.paramProcess['res'] = { 'X': resX, 'Y': resY }
image = job.renderedImage()
if bool( self.paramProcess['canvas'].property('retro') ):
image = image.scaled( image.width() / 3, image.height() / 3 )
image = image.convertToFormat( QImage.Format_Indexed8, Qt.OrderedDither | Qt.OrderedAlphaDither )
image.save( self.paramProcess['pathfileImage'], "TIFF", 100 ) # 100: Uncompressed
addParams()
settings = QgsMapSettings( self.paramProcess['canvas'].mapSettings() )
settings.setBackgroundColor( QColor( Qt.transparent ) )
layers = self.paramProcess['layerImages']
if 'layerPolygon' in self.paramProcess:
layers = [ self.paramProcess['layerPolygon'] ] + layers
settings.setLayers( layers )
job = QgsMapRendererParallelJob( settings )
job.start()
job.finished.connect( finished)
job.waitForFinished()
开发者ID:lmotta,项目名称:gimpselectionfeature_plugin,代码行数:35,代码来源:gimpselectionfeature.py
示例2: setMap
def setMap(self):
def finished():
super(SwipeMap, self).setContent( job.renderedImage(), self.canvas.extent() )
settings = QgsMapSettings( self.canvas.mapSettings() )
settings.setLayers( self.layers )
job = QgsMapRendererParallelJob( settings)
job.start()
job.finished.connect( finished)
job.waitForFinished()
开发者ID:picaosgeo,项目名称:mapswipetool_plugin,代码行数:11,代码来源:swipemap.py
示例3: updatecanvas
def updatecanvas(self, canvas):
"""
Update the canvas object for the legend background.
"""
if self._lastextent == canvas.extent():
return
self._lastextent = canvas.extent()
if QGis.QGIS_VERSION_INT > 20200:
from qgis.core import QgsMapRendererParallelJob, QgsMapSettings
settings = canvas.mapSettings()
extent = settings.extent()
settings.setOutputSize(self.size())
settings.setExtent(extent)
#settings.setFlags(QgsMapSettings.Antialiasing | QgsMapSettings.DrawLabeling )
self.renderjob = QgsMapRendererParallelJob(settings)
self.renderjob.finished.connect(self._renderimage)
self.renderjob.start()
else:
if canvas.isDrawing():
return
pixmap = QPixmap(self.size())
pixmap.fill(canvas.canvasColor())
painter = QPainter(pixmap)
painter.setRenderHints(QPainter.Antialiasing)
renderer = canvas.mapRenderer()
renderer.render(painter)
del painter
self.canvasimage = pixmap.toImage()
self.update()
开发者ID:HeatherHillers,项目名称:Roam,代码行数:31,代码来源:legendwidget.py
示例4: getmap
def getmap(self):
if self.canvas:
settings = self.canvas.mapSettings()
layers = settings.layers()
if GPS.isConnected:
try:
gpslayer = QgsMapLayerRegistry.instance().mapLayersByName("__gps_layer")[0]
except IndexError:
gpslayer = QgsVectorLayer("Point", "__gps_layer", "memory")
symbol = QgsMarkerSymbolV2.createSimple({'name': 'circle', 'color': 'blue', "size": '5'})
gpslayer.rendererV2().setSymbol(symbol)
QgsMapLayerRegistry.instance().addMapLayer(gpslayer, False)
layers.append(gpslayer.id())
settings.setLayers(layers)
map_pos = QgsPoint(GPS.gpsinfo("longitude"), GPS.gpsinfo("latitude"))
# map_pos = QgsPoint(115.72589,-32.29597)
geom = QgsGeometry.fromPoint(map_pos)
feature = QgsFeature()
feature.setGeometry(geom)
gpslayer.startEditing()
gpslayer.addFeature(feature)
# gpslayer.commitChanges()
self.renderjob = QgsMapRendererParallelJob(settings)
self.renderjob.finished.connect(self.rendermap)
self.renderjob.start()
开发者ID:lydonchandra,项目名称:Roam,代码行数:28,代码来源:drawingpad.py
示例5: render
def render(name, settings):
settings.setOutputSize(IMAGE_SIZE)
job = QgsMapRendererParallelJob(settings)
#job = QgsMapRendererSequentialJob(settings)
job.start()
job.waitForFinished()
image = job.renderedImage()
if not os.path.exists(image_path):
os.mkdir(image_path)
image.save(os.path.join(image_path, name + '.png'))
return job.renderingTime()
开发者ID:timlinux,项目名称:qgis2img,代码行数:11,代码来源:render.py
示例6: render
def render(settings):
"""
Render the given settings to a image and save to disk.
name: The name of the final result file.
settings: QgsMapSettings containing the settings to render
exportpath: The folder for the images to be exported to.
"""
job = QgsMapRendererParallelJob(settings)
#job = QgsMapRendererSequentialJob(settings)
job.start()
job.waitForFinished()
image = job.renderedImage()
return image, job.renderingTime()
开发者ID:wonder-sk,项目名称:qgis2img,代码行数:13,代码来源:render.py
示例7: getmap
def getmap(self):
if self.canvas:
if QGis.QGIS_VERSION_INT > 20200:
from qgis.core import QgsMapRendererParallelJob
self.renderjob = QgsMapRendererParallelJob(self.canvas.mapSettings())
self.renderjob.finished.connect(self.rendermap)
self.renderjob.start()
else:
pixmap = QPixmap(self.canvas.size())
pixmap.fill(self.canvas.canvasColor())
painter = QPainter(pixmap)
renderer = self.canvas.mapRenderer()
renderer.render(painter)
del painter
self.scribbleArea.addMap(pixmap)
开发者ID:HeatherHillers,项目名称:Roam,代码行数:15,代码来源:drawingpad.py
示例8: render_layer
def render_layer(settings, layer, width, height):
settings.setLayers([layer.id()])
settings.setFlags(settings.flags() ^ QgsMapSettings.Antialiasing)
settings.setOutputSize(QSize(width, height))
job = QgsMapRendererParallelJob(settings)
job.start()
job.waitForFinished()
image = job.renderedImage()
# image.save(r"/media/nathan/Data/dev/qgis-term/{}.jpg".format(layer.name()))
return image
开发者ID:NathanW2,项目名称:ascii_qgis,代码行数:10,代码来源:ascii_qgis.py
示例9: renderMapToImage
def renderMapToImage(mapsettings, parallel=False):
"""
Render current map to an image, via multi-threaded renderer
:param QgsMapSettings mapsettings:
:param bool parallel: Do parallel or sequential render job
:rtype: QImage
"""
if parallel:
job = QgsMapRendererParallelJob(mapsettings)
else:
job = QgsMapRendererSequentialJob(mapsettings)
job.start()
job.waitForFinished()
return job.renderedImage()
开发者ID:EmilyHueni,项目名称:Quantum-GIS,代码行数:15,代码来源:utilities.py
示例10: render_qgis_map
def render_qgis_map(self):
logging.info("Rendering QGIS map")
# Gross. Fix me
if not self.settings and project:
self.settings = project.map_settings
# TODO We should only get visible layers here but this will do for now
self.settings.setLayers(QgsMapLayerRegistry.instance().mapLayers().keys())
self.settings.setFlags(self.settings.flags() ^ QgsMapSettings.Antialiasing)
logging.info(self.settings.flags())
logging.info(self.settings.testFlag(QgsMapSettings.Antialiasing))
height, width = self.mapwin.getmaxyx()
logging.info("Setting output size to {}, {}".format(width, height))
self.settings.setOutputSize(QSize(width, height))
job = QgsMapRendererParallelJob(self.settings)
job.start()
job.waitForFinished()
image = job.renderedImage()
logging.info("Saving rendered image for checks...")
image.save(r"F:\dev\qgis-term\render.jpg")
return image
开发者ID:luca76,项目名称:ascii_qgis,代码行数:21,代码来源:ascii_qgis.py
示例11: DrawingPad
class DrawingPad(Ui_DrawingWindow, QWidget):
def __init__(self, startimage=None, parent=None):
super(DrawingPad, self).__init__(parent)
self.saveAsActs = []
self.setupUi(self)
self.scribbleArea = ScribbleArea()
self.scribbleArea.clearImage()
self.frame.layout().addWidget(self.scribbleArea)
self.createActions()
self.actionRedPen.trigger()
self.setWindowTitle("Scribble")
self.resize(500, 500)
self.openImage(startimage)
self.colorPickerButton.clicked.connect(self.pickcolour)
self.canvas = None
@property
def canvas(self):
return self._canvas
@canvas.setter
def canvas(self, value):
enabled = True if value else False
self.actionMapSnapshot.setEnabled(enabled)
self._canvas = value
@property
def pixmap(self):
return self.scribbleArea.pixmap
@pixmap.setter
def pixmap(self, value):
self.scribbleArea.pixmap = value
def pickcolour(self):
colour = QColorDialog.getColor(Qt.black, self)
self.scribbleArea.setPenColor(colour)
def rendermap(self):
image = self.renderjob.renderedImage()
self.scribbleArea.addMapImage(image)
def getmap(self):
if self.canvas:
if QGis.QGIS_VERSION_INT > 20200:
from qgis.core import QgsMapRendererParallelJob
self.renderjob = QgsMapRendererParallelJob(self.canvas.mapSettings())
self.renderjob.finished.connect(self.rendermap)
self.renderjob.start()
else:
pixmap = QPixmap(self.canvas.size())
pixmap.fill(self.canvas.canvasColor())
painter = QPainter(pixmap)
renderer = self.canvas.mapRenderer()
renderer.render(painter)
del painter
self.scribbleArea.addMap(pixmap)
def openImage(self, image):
if not image is None and os.path.exists(image):
self.scribbleArea.openImage(image)
def saveImage(self, filename):
filename = filename + ".png"
log(filename)
return self.scribbleArea.saveImage(filename, "png")
def setPen(self, color, size=3):
self.scribbleArea.setPenWidth(size)
self.scribbleArea.setPenColor(color)
def createActions(self):
self.actionClearDrawing.triggered.connect(self.scribbleArea.clearImage)
self.toolClear.setDefaultAction(self.actionClearDrawing)
self.actionRedPen.triggered.connect(functools.partial(self.setPen, QtCore.Qt.red, 3))
self.toolRedPen.setDefaultAction(self.actionRedPen)
self.actionBluePen.triggered.connect(functools.partial(self.setPen, QtCore.Qt.blue, 3))
self.toolBluePen.setDefaultAction(self.actionBluePen)
self.actionBlackPen.triggered.connect(functools.partial(self.setPen, QtCore.Qt.black, 3))
self.toolBlackPen.setDefaultAction(self.actionBlackPen)
self.actionEraser.triggered.connect(functools.partial(self.setPen, QtCore.Qt.white, 9))
self.toolEraser.setDefaultAction(self.actionEraser)
self.actionMapSnapshot.triggered.connect(self.getmap)
self.toolMapSnapshot.setDefaultAction(self.actionMapSnapshot)
self.toolSave.setDefaultAction(self.actionSave)
self.toolCancel.setDefaultAction(self.actionCancel)
开发者ID:HeatherHillers,项目名称:Roam,代码行数:99,代码来源:drawingpad.py
示例12: LegendWidget
#.........这里部分代码省略.........
if not self.canvasimage:
return
painter = QPainter(self)
painter.setRenderHints(QPainter.Antialiasing)
painter.drawImage(event.rect(), self.canvasimage)
itemwidths, itemmaxheight = calcitems()
OFFSET_X = 30
OFFSET_Y = itemmaxheight + 10
rect = event.rect()
neededheight = (len(self.items) * OFFSET_Y)
columns = 1
if neededheight > rect.height():
columns = math.ceil(neededheight / float(rect.height()))
framerect = QRect(rect)
framewidth = (itemwidths + OFFSET_X + ICON_SIZE.width() + 100) * columns
framerect.setWidth(framewidth)
painter.setBrush(self.legendareabrush)
painter.setPen(self.legendareapen)
painter.drawRect(framerect)
self.framerect = framerect
painter.setPen(Qt.black)
currenty = OFFSET_Y
currentx = OFFSET_X
position = rect.topLeft() + QPoint(OFFSET_X, currenty)
for text, icon in itemlist():
itempostion = QPoint(position)
if currenty > rect.height():
currentx = itemwidths + OFFSET_X + 100
currenty = itemmaxheight + 10
itempostion.setX(currentx)
itempostion.setY(currenty)
_drawitem(icon, text, itempostion)
currenty += OFFSET_Y
position.setY(currenty + OFFSET_Y)
def mousePressEvent(self, event):
if self.framerect.contains(event.pos()):
return
self.showmap.emit()
def updateitems(self, layers):
self.items = {}
for layer in layers:
if not layer.type() == QgsMapLayer.VectorLayer:
continue
try:
items = layer.rendererV2().legendSymbologyItems(ICON_SIZE)
except AttributeError:
continue
self.items[layer.name()] = items
self.update()
def _renderimage(self):
image = self.renderjob.renderedImage()
self.canvasimage = image
self.update()
def updatecanvas(self, canvas):
"""
Update the canvas object for the legend background.
"""
if self._lastextent == canvas.extent():
return
self._lastextent = canvas.extent()
if QGis.QGIS_VERSION_INT > 20200:
from qgis.core import QgsMapRendererParallelJob, QgsMapSettings
settings = canvas.mapSettings()
extent = settings.extent()
settings.setOutputSize(self.size())
settings.setExtent(extent)
#settings.setFlags(QgsMapSettings.Antialiasing | QgsMapSettings.DrawLabeling )
self.renderjob = QgsMapRendererParallelJob(settings)
self.renderjob.finished.connect(self._renderimage)
self.renderjob.start()
else:
if canvas.isDrawing():
return
pixmap = QPixmap(self.size())
pixmap.fill(canvas.canvasColor())
painter = QPainter(pixmap)
painter.setRenderHints(QPainter.Antialiasing)
renderer = canvas.mapRenderer()
renderer.render(painter)
del painter
self.canvasimage = pixmap.toImage()
self.update()
开发者ID:HeatherHillers,项目名称:Roam,代码行数:101,代码来源:legendwidget.py
示例13: DrawingPad
class DrawingPad(Ui_DrawingWindow, QWidget):
def __init__(self, startimage=None, parent=None):
super(DrawingPad, self).__init__(parent)
self.saveAsActs = []
self.setupUi(self)
self.scribbleArea = ScribbleArea()
self.scribbleArea.clearImage()
self.frame.layout().addWidget(self.scribbleArea)
self.createActions()
self.actionRedPen.trigger()
self.setWindowTitle("Scribble")
self.resize(500, 500)
self.openImage(startimage)
self.colorPickerButton.clicked.connect(self.pickcolour)
self.canvas = None
@property
def canvas(self):
return self._canvas
@canvas.setter
def canvas(self, value):
enabled = True if value else False
self.actionMapSnapshot.setEnabled(enabled)
self._canvas = value
@property
def pixmap(self):
return self.scribbleArea.pixmap
@pixmap.setter
def pixmap(self, value):
self.scribbleArea.pixmap = value
def pickcolour(self):
colour = QColorDialog.getColor(Qt.black, self)
self.scribbleArea.setPenColor(colour)
def rendermap(self):
image = self.renderjob.renderedImage()
self.scribbleArea.addMapImage(image)
try:
gpslayer = QgsMapLayerRegistry.instance().mapLayersByName("__gps_layer")[0]
gpslayer.rollBack()
except IndexError:
pass
def getmap(self):
if self.canvas:
settings = self.canvas.mapSettings()
layers = settings.layers()
if GPS.isConnected:
try:
gpslayer = QgsMapLayerRegistry.instance().mapLayersByName("__gps_layer")[0]
except IndexError:
gpslayer = QgsVectorLayer("Point", "__gps_layer", "memory")
symbol = QgsMarkerSymbolV2.createSimple({'name': 'circle', 'color': 'blue', "size": '5'})
gpslayer.rendererV2().setSymbol(symbol)
QgsMapLayerRegistry.instance().addMapLayer(gpslayer, False)
layers.append(gpslayer.id())
settings.setLayers(layers)
map_pos = QgsPoint(GPS.gpsinfo("longitude"), GPS.gpsinfo("latitude"))
# map_pos = QgsPoint(115.72589,-32.29597)
geom = QgsGeometry.fromPoint(map_pos)
feature = QgsFeature()
feature.setGeometry(geom)
gpslayer.startEditing()
gpslayer.addFeature(feature)
# gpslayer.commitChanges()
self.renderjob = QgsMapRendererParallelJob(settings)
self.renderjob.finished.connect(self.rendermap)
self.renderjob.start()
def openImage(self, image):
if not image is None and os.path.exists(image):
self.scribbleArea.openImage(image)
def saveImage(self, filename):
filename = filename + ".png"
log(filename)
return self.scribbleArea.saveImage(filename, "png")
def setPen(self, color, size=3):
self.scribbleArea.setPenWidth(size)
self.scribbleArea.setPenColor(color)
def createActions(self):
self.actionClearDrawing.triggered.connect(self.scribbleArea.clearImage)
self.toolClear.setDefaultAction(self.actionClearDrawing)
#.........这里部分代码省略.........
开发者ID:lydonchandra,项目名称:Roam,代码行数:101,代码来源:drawingpad.py
注:本文中的qgis.core.QgsMapRendererParallelJob类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论