This tutorial covers intermediate usage of the TravelTime plugin. It looks at how to use the algorithms from the processing toolbox.
To learn more about TravelTime and to discuss commercial licences visit our website.
This is the video version of the second tutorial. The exact same tutorial is also available in written form below.
During this tutorial, we’ll cover :
Make sure you followed the first tutorial before doing this one, as you’ll need some of the skills learned there to do this one.
We’ll mostly focus on the Time map algorithm, but everything is applicable in similar ways to the other two algorithms. You may also learn a few nice things about QGIS if you’re new to it !
Since last time, thanks to your accurate analysis techniques, your pizza business grew quite a lot. You now own all the pizzerias of your neighbourhood !
The justifies moving from the express tools to the simplified algorithms.
These algorithms work in a slightly different way than the map tools you used before. Instead of mouse clicks, they take inputs from other layers. It is slightly more complicated to setup, as you need actual inputs layers, but also much more powerful, as the analysis can be reproduced, and as you can process much more data at once.
To get started, we want to see what area your delivery fleet is able to cover, to see if we have gaps that we need to cover.
Just like last time, create a blank project, and add a background layer.
Again, just like last time, let’s load some data using QuickOSM. Do the same steps than last time, but choose “amenity” and “restaurant” in the dialog instead.
You’ll get all restaurants in the map extent. As we just own pizzerias, and not all restaurants, we’ll filter this layer. To do that, we’ll use the
cuisine attribute that comes with the OSM data.
Right-click on the new
amenity restaurants layer, and choose filter. In the dialog, enter (exactly, look at the quotes carefully)
Click OK, and you should now have less points than before, representing only pizzerias.
Just a note : the limitation of the number of queries you can make, which we saw already in tutorial 1, also applies when running the algorithms from the toolbox. The error will look a bit different though.
An API limit error when running an algorithm
We’ll now feed in this layer into the Simplified Time map algorithm.
Make sure the
amenity restaurants is selected in the layer, then press the selection icon . Drag a rectangle on the map to select the pizzerias that you own. Make sure you have a select a reasonable amount of pizzerias (5-15).
Click on the toolbox icon to open the processing toolbox (note that this is exactly equivalent to showing the toolbox using QGIS’s default button, and then manually filtering the algorithms).
In the toolbox, double-click on the Simplified Time map algorithm to open the main dialog.
Most of the parameters should look familiar. Choose the
amenity restaurants layer in the first parameter to indicate that you want the searches to be taken from this layer. Make sure to check
Selected features only. Set the travel time to 10 minutes and the transportation type to cycling.
When ready, click run. Your project should now look like this.
What a mess! It’s quite hard to see anything at all… Let’s see how to improve this.
We’ll now dissolve all polygons into one, since what we were interested in is the total service area.
Still in the processing toolbox, search for the
dissolve algorithm (using the small search bar). Double click it, choose
Output layer as
Input layer, and click run. You will get a new layer containing just one polygon. Let’s rename it to
We’ll copy over the style from the first layer to the second one, as it looked better. Right click on the
Output in the legend and choose
Styles > Copy style > All styles categories, then right click on the
serviced area layer and choose
Styles > Paste style > All styles categories. You can now delete the
Your project should now look like this.
Using different algorithms together is extremely powerful. Have a quick look at the quantity of algorithms in the toolbox. You’ll be able to use all of those with the outputs of the TravelTime plugin, opening endless possibilities.
Note : the algorithm has a “result aggregation” option that can be set to UNION. This option allows to get the dissolved polygons directly in one step. The only issue is that it works correctly only if the input layer has less than 10 points, after which the requests are made in batch to the endpoint, and thus several polygons are returned. So, if you’re working with bigger datasets than 10 points, it’s better to rely on the dissolved algorithm as shown.
You’ve shown the delivery map to your new shareholders, and they’ve been greatly impressed. They now ask you to make a map representing your coverage area for customers that come to your restaurants.
The issue is that you have two types of restaurants : the drive-through, that only serve cars, and the regular restaurants, that don’t have a parking area, so that people cannot come by car.
We’ll see how to deal with this using the advanced algorithms.
First, we’ll keep only the select points, as we don’t need the other restaurants any more. To do so, select the
amenity_restaurant in the legend, make sure you still have select points (they show up in yellow), then press ctrl+C (copy) and chose
Paste features as temporary scratch layer from the
edit menu. This will create a new layer with just the selected points, which you could name
You can now delete the old
We’ll add some information to our restaurant. Right-click on the
my restaurants layer, and choose
open attribute table. Toggle the edit mode , and add a new field . Call the field
Once this is done, still in the attribute table, scroll to the very right (there may be a huge amount of column, as this is how OSM’s data is imported in QGIS), and click on a few random cells of the new
is_drive_through column, to indicate that these restaurants are drive throughs.
Then, toggle the edit mode back off and close the attribute table.
Open the processing toolbox and double click on the Advanced Time map algorithm to open the dialog.
Again, some inputs may look familiar. But you’ll notice there are more, especially under the
advanced section, which allows to fine tune a lot of parameters.
We’ll leave those for now. Pick the
my restaurants layers as
Departure searches. Click on the E next to
Departure / Transportation / Type. This will allow us to enter an expression that will define the transportation type for each restaurant.
Enter the following expression (again, be careful to use the same type of quotes)
if( "is_drive_through" , 'driving', 'public_transport'). This expression will return
driving if the restaurant is a drive through, or
public_transport if not.
When this is done, you can hit run. Now just do the same steps than before the dissolve the layer, and voilà !
Defining parameters using expressions is extremely powerful. Using the exact same approach, you could define different searches based on each restaurant’s opening/closing hours, or even fine tune some parameters such as the parking time.
This concludes our second tutorial !
To continue discovering what the plugin has to offer, have a look at the next tutorial of the series : Tutorial 03. Going further with algorithms.
Again, don’t forget to have a look at the reference documentation, that describes everything the plugin does, as well as at the TravelTime blog which includes numerous quality articles around the TravelTime API.