本文整理汇总了Python中qgis.gui.QgsRubberBand.setFillColor方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRubberBand.setFillColor方法的具体用法?Python QgsRubberBand.setFillColor怎么用?Python QgsRubberBand.setFillColor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.gui.QgsRubberBand
的用法示例。
在下文中一共展示了QgsRubberBand.setFillColor方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getSnapRubberBand
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
def getSnapRubberBand(self):
rubberBand = QgsRubberBand(self.canvas, geometryType = QGis.Point)
rubberBand.setFillColor(QColor(255, 0, 0, 40))
rubberBand.setBorderColor(QColor(255, 0, 0, 200))
rubberBand.setWidth(2)
rubberBand.setIcon(QgsRubberBand.ICON_X)
return rubberBand
示例2: zoomAndShowWKT
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
def zoomAndShowWKT(self, wtk):
geom = QgsGeometry.fromWkt(wtk)
canvas = self.iface.mapCanvas()
self.clear()
r = QgsRubberBand(canvas, geom.type() == 3 )
r.setToGeometry(geom, None)
r.setColor(QColor(0, 0, 255))
r.setFillColor(QColor(0, 0, 255, 50))
r.setWidth(3)
pt = geom.pointOnSurface().asPoint()
m = QgsVertexMarker(canvas)
m.setCenter( pt )
m.setColor(QColor(0, 0, 255))
m.setIconSize(5)
m.setIconType(QgsVertexMarker.ICON_BOX)
m.setPenWidth(3)
if geom.type() == 3 or geom.type() == 2:
rec = geom.boundingBox()
canvas.setExtent(rec)
else:
self.moveMapTo( pt[0], pt[1], 0)
self.graphics.append(r)
self.graphics.append(m)
self._refresh_layers()
示例3: getRubberBand
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
def getRubberBand(self):
geomType = self.iface.activeLayer().geometryType()
if geomType == QGis.Polygon:
rubberBand = QgsRubberBand(self.canvas, True)
rubberBand.setFillColor(QColor(255, 0, 0, 40))
elif geomType == QGis.Line:
rubberBand = QgsRubberBand(self.canvas, False)
rubberBand.setBorderColor(QColor(255, 0, 0, 200))
rubberBand.setWidth(2)
return rubberBand
示例4: initRubberLayer
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
def initRubberLayer(self):
if self.rubberLayer:
rb = self.rubberLayer
rb.reset(True)
else:
rb = QgsRubberBand(self.iface.mapCanvas(), True)
rb.setColor(QColor(255, 0, 255, 255))
rb.setWidth(3)
rb.setFillColor(QColor(255, 0, 255, 50))
self.rubberLayer = rb
示例5: highlight
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
def highlight(self,geometry):
def processEvents():
try:
qApp.processEvents()
except:
QApplication.processEvents()
highlight = QgsRubberBand(self.canvas, geometry.type())
highlight.setColor(QColor("#36AF6C"))
highlight.setFillColor(QColor("#36AF6C"))
highlight.setWidth(2)
highlight.setToGeometry(geometry,self.canvas.currentLayer())
processEvents()
sleep(.1)
highlight.hide()
processEvents()
sleep(.1)
highlight.show()
processEvents()
sleep(.1)
highlight.reset()
processEvents()
示例6: ApisMapToolEmitPointAndSquare
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
class ApisMapToolEmitPointAndSquare(QgsMapTool, ApisMapToolMixin):
# when mapping finished signal emitted that carries the Point and a Polygon Geometry (in Map Coordinates)
mappingFinished = pyqtSignal(QgsGeometry, QgsGeometry, QgsCoordinateReferenceSystem)
def __init__(self, canvas, diagonal=200):
QgsMapTool.__init__(self, canvas)
self.canvas = canvas
self.vertexMarker = None
self.rubberBand = None
self.capturedPoint = None
self.derivedPolygon = []
self.capturing = False
# self.setLayers(pointLayer, polygonLayer)
self.setDiagonal(diagonal)
self.setCursor(Qt.CrossCursor)
def canvasReleaseEvent(self, event):
if event.button() == Qt.LeftButton:
if not self.capturing:
self.startCapturing()
self.setVertex(event.pos())
elif event.button() == Qt.RightButton:
point = self.getCapturedPoint()
polygon = self.getDerivedPolygon()
self.stopCapturing()
if point != None and polygon != None:
self.mappingFinished.emit(self.getPointGeometry(point), self.getPolygonGeometry(polygon), self.canvas.mapSettings().destinationCrs())
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace or event.key() == Qt.Key_Delete:
#self.removeLastVertex()
event.ignore()
if event.key() == Qt.Key_Escape:
self.stopCapturing()
self.clearScene()
if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter:
point = self.getCapturedPoint()
polygon = self.getDerivedPolygon()
self.stopCapturing()
if point != None and polygon != None:
self.mappingFinished.emit(self.getPointGeometry(point), self.getPolygonGeometry(polygon), self.canvas.mapSettings().destinationCrs())
def startCapturing(self):
self.clearScene()
self.vertexMarker = QgsVertexMarker(self.canvas)
self.vertexMarker.setIconType(1)
self.vertexMarker.setColor(QColor(220, 0, 0))
self.vertexMarker.setIconSize(16)
self.vertexMarker.setPenWidth(3)
self.vertexMarker.show()
self.rubberBand = QgsRubberBand(self.canvas, QGis.Polygon)
self.rubberBand.setWidth(2)
self.rubberBand.setFillColor(QColor(220, 0, 0, 120))
self.rubberBand.setBorderColor(QColor(220, 0, 0))
self.rubberBand.setLineStyle(Qt.DotLine)
self.rubberBand.show()
self.capturing = True
def clearScene(self):
if self.vertexMarker:
self.canvas.scene().removeItem(self.vertexMarker)
self.vertexMarker = None
if self.rubberBand:
self.canvas.scene().removeItem(self.rubberBand)
self.rubberBand = None
def stopCapturing(self):
self.capturing = False
self.capturedPoint = None
self.derivedPolygon = []
self.canvas.refresh()
def setVertex(self, canvasPoint):
mapPt = self.transformCoordinates(canvasPoint)
# set/update vertexMarker Position
self.vertexMarker.setCenter(mapPt)
self.capturedPoint = mapPt
# update rubberBand
self.updateRubberBand()
def updateRubberBand(self):
if self.capturedPoint and self.rubberBand:
# calculate Points
self.derivedPolygon = self.calculateSquare(self.capturedPoint)
self.rubberBand.reset(QGis.Polygon)
for mapPt in self.derivedPolygon:
self.rubberBand.addPoint(mapPt)
def getCapturedPoint(self):
point = self.capturedPoint
#.........这里部分代码省略.........
示例7: ApisMapToolEmitPolygonAndPoint
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
class ApisMapToolEmitPolygonAndPoint(QgsMapTool, ApisMapToolMixin):
mappingFinished = pyqtSignal(QgsGeometry, QgsGeometry, QgsCoordinateReferenceSystem)
def __init__(self, canvas):
QgsMapTool.__init__(self, canvas)
self.canvas = canvas
self.rubberBand = None
self.tempRubberBand = None
self.vertexMarker = None
self.capturedPoints = []
self.derivedPoint = None
self.capturing = False
self.setCursor(Qt.CrossCursor)
def canvasReleaseEvent(self, event):
if event.button() == Qt.LeftButton:
if not self.capturing:
self.startCapturing()
self.addVertex(event.pos())
elif event.button() == Qt.RightButton:
point = self.getDerivedPoint()
polygon = self.getCapturedPolygon()
self.stopCapturing()
if point != None and polygon != None:
pointGeom = self.getPointGeometry(point)
polygonGeom = self.getPolygonGeometry(polygon)
if pointGeom != None and polygonGeom != None:
self.mappingFinished.emit(pointGeom, polygonGeom, self.canvas.mapSettings().destinationCrs())
else:
self.clearScene()
else:
self.clearScene()
def canvasMoveEvent(self, event):
if self.tempRubberBand != None and self.capturing:
mapPt = self.transformCoordinates(event.pos())
self.tempRubberBand.movePoint(mapPt)
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace or event.key() == Qt.Key_Delete:
self.removeLastVertex()
event.ignore()
if event.key() == Qt.Key_Escape:
self.stopCapturing()
self.clearScene()
if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter:
point = self.getDerivedPoint()
polygon = self.getCapturedPolygon()
self.stopCapturing()
if point != None and polygon != None:
pointGeom = self.getPointGeometry(point)
polygonGeom = self.getPolygonGeometry(polygon)
if pointGeom != None and polygonGeom != None:
self.mappingFinished.emit(pointGeom, polygonGeom, self.canvas.mapSettings().destinationCrs())
else:
self.clearScene()
else:
self.clearScene()
def startCapturing(self):
self.clearScene()
self.rubberBand = QgsRubberBand(self.canvas, QGis.Polygon)
self.rubberBand.setWidth(2)
self.rubberBand.setFillColor(QColor(220, 0, 0, 120))
self.rubberBand.setBorderColor(QColor(220, 0, 0))
self.rubberBand.setLineStyle(Qt.DotLine)
self.rubberBand.show()
self.tempRubberBand = QgsRubberBand(self.canvas, QGis.Polygon)
self.tempRubberBand.setWidth(2)
self.tempRubberBand.setFillColor(QColor(0, 0, 0, 0))
self.tempRubberBand.setBorderColor(QColor(220, 0, 0))
self.tempRubberBand.setLineStyle(Qt.DotLine)
self.tempRubberBand.show()
self.vertexMarker = QgsVertexMarker(self.canvas)
self.vertexMarker.setIconType(1)
self.vertexMarker.setColor(QColor(220, 0, 0))
self.vertexMarker.setIconSize(16)
self.vertexMarker.setPenWidth(3)
self.vertexMarker.show()
self.capturing = True
def clearScene(self):
if self.vertexMarker:
self.canvas.scene().removeItem(self.vertexMarker)
self.vertexMarker = None
if self.rubberBand:
self.canvas.scene().removeItem(self.rubberBand)
self.rubberBand = None
if self.tempRubberBand:
self.canvas.scene().removeItem(self.tempRubberBand)
self.tempRubberBand = None
def stopCapturing(self):
if self.vertexMarker and self.rubberBand and self.rubberBand.numberOfVertices() < 3:
#.........这里部分代码省略.........
示例8: AreaTool
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
class AreaTool(QgsMapTool):
"""
Map tool class to select an area
"""
releasedSignal = pyqtSignal()
def __init__(self, iface):
"""
Constructor
:param iface: interface
"""
QgsMapTool.__init__(self, iface.mapCanvas())
self.__clear()
def activate(self):
"""
When the action is selected
"""
QgsMapTool.activate(self)
self.__rubber = QgsRubberBand(self.canvas(), QGis.Polygon)
color = QColor("red")
color.setAlphaF(0.6)
self.__rubber.setBorderColor(color)
color = QColor("orange")
color.setAlphaF(0.3)
self.__rubber.setFillColor(color)
def deactivate(self):
"""
When the action is deselected
"""
self.__clear()
QgsMapTool.deactivate(self)
def __clear(self):
"""
To clear used variables
"""
self.__selecting = False
self.__rubber = None
self.first = None
self.last = None
self.geom = None
def canvasMoveEvent(self, event):
"""
When the mouse is moved
:param event: mouse event
"""
if self.__selecting:
self.__rubber.reset()
firstV2 = QgsPointV2(self.first)
second = QgsPointV2(self.first.x(), event.mapPoint().y())
third = QgsPointV2(event.mapPoint())
fourth = QgsPointV2(event.mapPoint().x(), self.first.y())
lineV2 = QgsLineStringV2()
lineV2.setPoints([firstV2, second, third, fourth, firstV2])
polygonV2 = QgsPolygonV2()
polygonV2.setExteriorRing(lineV2)
self.geom = QgsGeometry(polygonV2)
self.__rubber.setToGeometry(self.geom, None)
def canvasPressEvent(self, event):
"""
When the mouse is pressed
:param event: mouse event
"""
self.__selecting = True
self.first = event.mapPoint()
def canvasReleaseEvent(self, event):
"""
When the mouse is clicked
:param event: mouse event
"""
self.__selecting = False
self.last = event.mapPoint()
self.__rubber.reset()
self.releasedSignal.emit()
示例9: DiviIdentifyTool
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setFillColor [as 别名]
class DiviIdentifyTool(QgsMapToolIdentify):
on_feature = pyqtSignal(object)
on_activities = pyqtSignal(dict)
on_raster = pyqtSignal(list)
wgs84 = QgsCoordinateReferenceSystem(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
cursor = QCursor(QPixmap(["16 16 3 1",
"# c None",
"a c #000000",
". c #ffffff",
".###########..##",
"...########.aa.#",
".aa..######.aa.#",
"#.aaa..#####..##",
"#.aaaaa..##.aa.#",
"##.aaaaaa...aa.#",
"##.aaaaaa...aa.#",
"##.aaaaa.##.aa.#",
"###.aaaaa.#.aa.#",
"###.aa.aaa..aa.#",
"####..#..aa.aa.#",
"####.####.aa.a.#",
"##########.aa..#",
"###########.aa..",
"############.a.#",
"#############.##"]), 0, 0)
def __init__(self, parent):
self.parent = parent
self.iface = parent.iface
self.canvas = parent.iface.mapCanvas()
self.indentifying = False
self.currentFid = None
self.geometry = QgsRubberBand(self.canvas, QgsWkbTypes.PointGeometry)
self.geometry.setColor(QColor('red'))
self.geometry.setFillColor(QColor(255, 0, 0, 100))
self.geometry.setIconSize(7)
self.geometry.setWidth(3)
super(DiviIdentifyTool, self).__init__(self.canvas)
def canvasReleaseEvent(self, event ):
self.geometry.reset(QgsWkbTypes.PointGeometry)
layer = self.iface.activeLayer()
if layer is None:
return
if isinstance(layer, QgsRasterLayer):
if layer.customProperty('DiviId') is None:
#Selected layer is not from DIVI
self.on_raster.emit( [] )
return
point = self.iface.mapCanvas().getCoordinateTransform().toMapCoordinates( event.x(), event.y() )
self.identifyRaster( point, layer.customProperty('DiviId') )
self.geometry.addPoint( point )
return
self.on_activities.emit( {
'attachments':[],
'comments':[],
'changes':[]} )
if layer.customProperty('DiviId') is None:
#Selected layer is not from DIVI
self.on_feature.emit( None )
return
result = self.identify(event.x(), event.y(), [layer], QgsMapToolIdentify.ActiveLayer)
if not result:
#Clear activities panel and return if no feaure was found
if self.indentifying:
self.abortIdentification()
self.on_feature.emit( None )
return
self.parent.identification_dock.tvIdentificationResult.model().sourceModel().setLoading()
feature = result[0].mFeature
if feature.id()<0:
#Added feature
self.iface.messageBar().pushMessage(self.tr("Error"), self.tr("Selected feature is not saved."), level=QgsMessageBar.CRITICAL, duration=3)
return
self.geometry.setToGeometry(feature.geometry(), layer)
if self.indentifying:
self.abortIdentification()
self.identifyVector( feature )
def activate(self):
super(DiviIdentifyTool, self).activate()
self.connector = self.parent.dockwidget.getConnector()
self.canvas.setCursor(self.cursor)
def deactivate(self):
super(DiviIdentifyTool, self).deactivate()
self.geometry.reset()
self.action().setChecked(False)
del self.connector
def identifyVector(self, feature):
self.indentifying = True
if not self.parent.identification_dock.isVisible():
self.parent.identification_dock.show()
self.parent.identification_dock.raise_()
fid = self.parent.ids_map[self.parent.iface.activeLayer().id()][feature.id()]
#.........这里部分代码省略.........