Creating custom map canvas items
A map canvas item is an item that is placed on top of the map canvas. Standard map canvas items include text annotations, vertex markers, and the visual highlighting of a feature. It is also possible to create your own custom map canvas items by subclassing QgsMapCanvasItem
. To see how this works, let's create a map canvas item that draws a compass rose onto the map:
We'll start by creating the basic QgsMapCanvasItem
subclass:
class CompassRoseItem(QgsMapCanvasItem): def __init__(self, canvas): QgsMapCanvasItem.__init__(self, canvas) self.center = QgsPoint(0, 0) self.size = 100 def setCenter(self, center): self.center = center def center(self): return self.center def setSize(self, size): self.size = size def size(self): return self.size def boundingRect(self): return QRectF(self.center.x() - self.size/2, self.center.y() - self.size/2, ...