本文整理汇总了Python中qgis.gui.QgsRubberBand.setBorderColor方法的典型用法代码示例。如果您正苦于以下问题:Python QgsRubberBand.setBorderColor方法的具体用法?Python QgsRubberBand.setBorderColor怎么用?Python QgsRubberBand.setBorderColor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.gui.QgsRubberBand
的用法示例。
在下文中一共展示了QgsRubberBand.setBorderColor方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getSnapRubberBand
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [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: highlight
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
def highlight():
rb = QgsRubberBand( self.canvas, QGis.Polygon)
rb.setBorderColor( QColor( 255, 0, 0 ) )
rb.setWidth( 2 )
rb.setToGeometry( geomRB, None )
return rb
示例3: addGraphic
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
def addGraphic(self, geom ):
canvas = self.iface.mapCanvas()
rBand = QgsRubberBand(canvas, True)
self.graphics.append( rBand )
rBand.setToGeometry( geom, None )
rBand.setColor(QtGui.QColor(0,0,255, 70))
if QGis.QGIS_VERSION_INT >= 20600:
rBand.setBorderColor( QtGui.QColor(0,0,250, 220) )
rBand.setWidth(3)
示例4: onClickedHighlight
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
def onClickedHighlight(self):
def removeRB():
rb.reset( True )
self.qgisCanvas.scene().removeItem( rb )
rb = QgsRubberBand( self.qgisCanvas, QGis.Polygon)
rb.setBorderColor( QColor( 255, 0, 0 ) )
rb.setWidth( 2 )
rb.setToGeometry( QgsGeometry.fromRect( self.canvas.extent() ), None )
QTimer.singleShot( 2000, removeRB )
示例5: getRubberBand
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [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
示例6: AuxiliaryWindow
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
#.........这里部分代码省略.........
def closeEvent(self, event):
self._connect( False )
event.accept()
self.closed.emit( self.numWin )
@pyqtSlot(int)
def onValueChangedScale(self, scaleFactor):
w = self.findChild( QCheckBox, 'renderCheck')
if not w.isChecked():
return
self._execFunction(
self.canvas.zoomScale, scaleFactor * self.qgisCanvas.scale(),
self.canvas.extentsChanged, self.onExtentsChangedMirror
)
self._textScaleBtnChanched()
@pyqtSlot()
def onClickedScale(self):
self._execFunction(
self.qgisCanvas.zoomScale, self.canvas.scale(),
self.qgisCanvas.extentsChanged, self.onExtentsChangedQgisCanvas
)
w = self.findChild( QDoubleSpinBox, 'scaleFactorSpin' )
self._execFunction( w.setValue, 1.0, w.valueChanged, self.onValueChangedScale )
@pyqtSlot()
def onClickedHighlight(self):
def removeRB():
rb.reset( True )
self.qgisCanvas.scene().removeItem( rb )
rb = QgsRubberBand( self.qgisCanvas, QGis.Polygon)
rb.setBorderColor( QColor( 255, 0, 0 ) )
rb.setWidth( 2 )
rb.setToGeometry( QgsGeometry.fromRect( self.canvas.extent() ), None )
QTimer.singleShot( 2000, removeRB )
@pyqtSlot(bool)
def onToggledRender(self, enabled):
if enabled:
self.canvas.setMapTool(self.toolPan)
w = self.findChild( QDoubleSpinBox, 'scaleFactorSpin' )
self._extentsChanged( self.canvas, self.onExtentsChangedMirror, self.qgisCanvas, w.value() )
self._textScaleBtnChanched()
self.canvas.setWheelAction( QgsMapCanvas.WheelZoom )
else:
self.canvas.unsetMapTool(self.toolPan)
self.canvas.setWheelAction( QgsMapCanvas.WheelNothing )
self.canvas.setRenderFlag( enabled )
@pyqtSlot(bool)
def onToggledMarker(self, enabled):
self.marker.add() if enabled else self.marker.remove()
@pyqtSlot(bool)
def onToggledExtent(self, enabled):
def setExtent():
if not self.extent is None:
self.canvas.scene().removeItem( self.extent )
self.extent = QgsRubberBand( self.canvas, QGis.Polygon )
self.extent.setBorderColor( QColor( 255, 0 , 0 ) )
self.extent.setWidth( 2 )
self._extent()
if enabled:
示例7: ExtractRasterValue
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
class ExtractRasterValue(ParentMapTool):
""" Button 18. User select nodes and assign raster elevation or value """
def __init__(self, iface, settings, action, index_action):
""" Class constructor """
# Call ParentMapTool constructor
super(ExtractRasterValue, self).__init__(iface, settings, action, index_action)
self.dragging = False
# Vertex marker
self.vertexMarker = QgsVertexMarker(self.canvas)
self.vertexMarker.setColor(QColor(255, 25, 25))
self.vertexMarker.setIconSize(11)
self.vertexMarker.setIconType(QgsVertexMarker.ICON_BOX) # or ICON_CROSS, ICON_X
self.vertexMarker.setPenWidth(5)
# Rubber band
self.rubberBand = QgsRubberBand(self.canvas, True)
mFillColor = QColor(100, 0, 0)
self.rubberBand.setColor(mFillColor)
self.rubberBand.setWidth(3)
mBorderColor = QColor(254, 58, 29)
self.rubberBand.setBorderColor(mBorderColor)
# Select rectangle
self.selectRect = QRect()
# Init
self.vectorLayer = None
self.rasterLayer = None
def reset(self):
""" Clear selected features """
layer = self.vectorLayer
if layer is not None:
layer.removeSelection()
# Graphic elements
self.rubberBand.reset()
def set_config_action(self, action_99):
""" Get the config form action"""
self.configAction = action_99
""" QgsMapTools inherited event functions """
def canvasMoveEvent(self, event):
""" With left click the digitizing is finished """
if self.vectorLayer is None:
return
if event.buttons() == Qt.LeftButton:
if not self.dragging:
self.dragging = True
self.selectRect.setTopLeft(event.pos())
self.selectRect.setBottomRight(event.pos())
self.set_rubber_band()
else:
# Hide highlight
self.vertexMarker.hide()
# Get the click
x = event.pos().x()
y = event.pos().y()
eventPoint = QPoint(x, y)
# Snapping
(retval, result) = self.snapper.snapToBackgroundLayers(eventPoint) # @UnusedVariable
# That's the snapped point
if result <> []:
# Check Arc or Node
for snapPoint in result:
if snapPoint.layer == self.vectorLayer:
# Get the point
point = QgsPoint(result[0].snappedVertex)
# Add marker
self.vertexMarker.setCenter(point)
self.vertexMarker.show()
break
def canvasPressEvent(self, event):
self.selectRect.setRect(0, 0, 0, 0)
self.rubberBand.reset()
def canvasReleaseEvent(self, event):
#.........这里部分代码省略.........
示例8: ApisMapToolEmitPointAndSquare
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [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
#.........这里部分代码省略.........
示例9: ApisMapToolEmitPolygonAndPoint
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [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:
#.........这里部分代码省略.........
示例10: AreaTool
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [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()
示例11: ConnecMapTool
# 需要导入模块: from qgis.gui import QgsRubberBand [as 别名]
# 或者: from qgis.gui.QgsRubberBand import setBorderColor [as 别名]
class ConnecMapTool(ParentMapTool):
""" Button 20. User select connections from layer 'connec'
Execute SQL function: 'gw_fct_connect_to_network' """
def __init__(self, iface, settings, action, index_action):
""" Class constructor """
# Call ParentMapTool constructor
super(ConnecMapTool, self).__init__(iface, settings, action, index_action)
self.dragging = False
# Vertex marker
self.vertexMarker = QgsVertexMarker(self.canvas)
self.vertexMarker.setColor(QColor(255, 25, 25))
self.vertexMarker.setIconSize(11)
self.vertexMarker.setIconType(QgsVertexMarker.ICON_BOX) # or ICON_CROSS, ICON_X
self.vertexMarker.setPenWidth(5)
# Rubber band
self.rubberBand = QgsRubberBand(self.canvas, True)
mFillColor = QColor(100, 0, 0)
self.rubberBand.setColor(mFillColor)
self.rubberBand.setWidth(3)
mBorderColor = QColor(254, 58, 29)
self.rubberBand.setBorderColor(mBorderColor)
# Select rectangle
self.selectRect = QRect()
def reset(self):
""" Clear selected features """
layer = self.layer_connec
if layer is not None:
layer.removeSelection()
# Graphic elements
self.rubberBand.reset()
""" QgsMapTools inherited event functions """
def canvasMoveEvent(self, event):
""" With left click the digitizing is finished """
if event.buttons() == Qt.LeftButton:
if not self.dragging:
self.dragging = True
self.selectRect.setTopLeft(event.pos())
self.selectRect.setBottomRight(event.pos())
self.set_rubber_band()
else:
# Hide highlight
self.vertexMarker.hide()
# Get the click
x = event.pos().x()
y = event.pos().y()
eventPoint = QPoint(x, y)
# Snapping
(retval, result) = self.snapper.snapToBackgroundLayers(eventPoint) # @UnusedVariable
# That's the snapped point
if result <> []:
# Check Arc or Node
for snapPoint in result:
if snapPoint.layer == self.layer_connec:
# Get the point
point = QgsPoint(result[0].snappedVertex)
# Add marker
self.vertexMarker.setCenter(point)
self.vertexMarker.show()
break
def canvasPressEvent(self, event):
self.selectRect.setRect(0, 0, 0, 0)
self.rubberBand.reset()
def canvasReleaseEvent(self, event):
""" With left click the digitizing is finished """
if event.button() == Qt.LeftButton:
# Get the click
x = event.pos().x()
y = event.pos().y()
eventPoint = QPoint(x, y)
# Node layer
#.........这里部分代码省略.........