QGIS is free and open source Geographic Information System (GIS) software. It is designed to allow users to view, edit, and analyze geospatial data. Today, I will show you how to find the nearest feature in other layers, and draw the line to connect to the features. For example, I am using earthquake and volcanos data in Sumatera, Indonesia, you can download it here. You can use other data, and the process remains the same.
The red triangle represents volcanos in Indonesia, and the green dot represents earthquake. I want to find what the nearest volcano to any earthquake. Before we get started, make sure you have activated Processing Toolbox Plugins, go to
Plugins -> Manage and Install Plugins and check
Processing plugin. Then, go to
Processing -> Toolbox to open the Toolbox window, and search for
Join attributes by nearest.
Fill input layer 1 with Earthquake data and input layer 2 with Volcano data. In this window, you can also set the maximum distance and the max number of nearest neighbors.
Click run and the process is completed. Now, we have a new layes named
joined layer. Open the attribute tables from
joined layer, and you might notice new columns in our
earthquake data, such as volcano name, the coordinate where the nearest point is located, and the distance betwen the earthquake and the nearest volcano. For instance, the first row of the table shows that the Bukit Daun Volcano is the closest volcano with a distance of 0.77 degree to the first earthquake data on the table.
Finally, to draw the line from earthquake data to the nearest volcano, we use the
joined layer and open properties menu. Go to
Symbology and add a new marker. Change the symbol type to
Geometry Generator and
LineString/MultiLineString geometry type. In the text field, add this line to draw the line from the current coordinates to
nearest_y that we created in the process earlier:
MAKE_LINE($geometry, MAKE_POINT("nearest_x", "nearest_y"))
Apply and now you can see the line from any earthquake to it’s nearest volcano.
Simple isn’t it, it’s because QGIS has many built-in tools to process geospatial data, including finding the nearest point from any features.