Building a custom selection tool
In this recipe, we will build a custom tool that both draws a shape on the map and interacts with other features on the map. These two basic functions are the basis for almost any map tool you would want to build, either in a standalone QGIS application like this one, or by extending the QGIS desktop application with a plugin.
Getting ready
We will use the application framework from the Adding standard map tools to the canvas recipe, so complete that recipe first. We will extend that application with a new tool. The complete version of this application is available in the code samples provided with this book. It will also be beneficial to study the other two tool-related recipes, A map tool to draw polygons or lines on the canvas and A map tool to draw points on the canvas, as this recipe builds on them as well.
You will also need the following zipped shapefile from https://geospatialpython.googlecode.com/files/NYC_MUSEUMS_GEO.zip.
Download and extract it to...