Book Image

Mastering Geospatial Development with QGIS 3.x - Third Edition

By : Shammunul Islam, Simon Miles, Kurt Menke, GISP, Richard Smith Jr., GISP, Luigi Pirelli, John Van Hoesen, GISP
Book Image

Mastering Geospatial Development with QGIS 3.x - Third Edition

By: Shammunul Islam, Simon Miles, Kurt Menke, GISP, Richard Smith Jr., GISP, Luigi Pirelli, John Van Hoesen, GISP

Overview of this book

QGIS is an open source solution to GIS and widely used by GIS professionals all over the world. It is the leading alternative to proprietary GIS software. Although QGIS is described as intuitive, it is also, by default, complex. Knowing which tools to use and how to apply them is essential to producing valuable deliverables on time. Starting with a refresher on the QGIS basics and getting you acquainted with the latest QGIS 3.6 updates, this book will take you all the way through to teaching you how to create a spatial database and a GeoPackage. Next, you will learn how to style raster and vector data by choosing and managing different colors. The book will then focus on processing raster and vector data. You will be then taught advanced applications, such as creating and editing vector data. Along with that, you will also learn about the newly updated Processing Toolbox, which will help you develop the advanced data visualizations. The book will then explain to you the graphic modeler, how to create QGIS plugins with PyQGIS, and how to integrate Python analysis scripts with QGIS. By the end of the book, you will understand how to work with all aspects of QGIS and will be ready to use it for any type of GIS work.
Table of Contents (18 chapters)
Title Page
Copyright and Credits
About Packt
Contributors
Preface
Index

Interacting with the map canvas


A plugin will interact with the map canvas to get some useful information. This information could be, for example, point coordinates or features identified by those coordinates. We can use them to draw geometry entities such as points, lines, or polygons.

Getting the map canvas

The 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()

The 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 button has been clicked on the canvas.

Explaining Map Tools

The most powerful method to interact with a map canvas class is to set one of the predefined Map Tools or create a custom one that is derived from the predefined Map Tools classes.

In this chapter...