A plugin will commonly interact with the map canvas to get some useful information. This information could be, for example, point coordinates or features identified by these coordinates. We can use them to draw geometry entities like points, lines, or polygons.
QgsMapCanvas class is the class that represents a QGIS canvas. There can be different canvas instances, but the main canvas instance can be referenced with the following code snippet:
mapCanvas = iface.mapCanvas()
QgsMapCanvas class generates some useful events to support location-based plugins. For example,
xyCoordinates() sends point locations based on canvas coordinates and the
keyPressed() event allows us to know which mouse ...