The MapScaping Podcast helps deliver new and intriguing geospatial-related topics, many of which are open source or education focused. We are proud to be a sponsor to help support this work going forward.
Gary Sherman recently did a post showing how QGIS has grown since his first version twenty years ago. In a nutshell, it grew from 2,173 lines of code to over 2 Million! I had to check that twice to be sure.
We are also so thankful for his work on this and the many other devs that have picked up where he left off.
We are excited to share our new company branding with you today. We’ve just reworked our website with a fresh new look and will be introducing more changes throughout the year based on our new logo. You may have already seen it roll out across social media accounts. Eventually it will end up on our books and swag as well.
When creating our initial logo ten years ago I had no idea it would last this long or be used on so many books.
The inspiration for that logo was to “target” the market with new open source titles to help challenge the status quo in GIS publishing (hence the gun sight icon).
This time we were inspired by contour mapping designs that help describe the world around us. We’ve added more colour yet maintained a crisp, minimalist design that also mimics an arrow pointing forward – a nod to the legacy of map production and a commitment to highlighting new ideas into the future.
The colours are descriptive, ecological, and reflect a natural vibe. Thanks to Nathan Watson for the great design ideas.
Our updated website now highlights our newest books and makes it easier to find the latest blog posts. We hope you like it!
Need books for an event or course? Normally we limit bulk discounts to larger orders, but anyone can place an order with us directly – for at least 5 books and we will give a 20% retail discount. That’s like buying four and getting one for free.
What you do with them after is up to you – resell, giveaway, or get them autographed at an event – your call!
Larger orders may enjoy even steeper discounts. We ship globally and print in USA, UK, and Australia.
This recipe assumes familiarity with QGIS styling, labeling, and layout creating basics, so we can focus on exciting new tips and tricks.
Our map uses six layers of the Quantarctica dataset. The geographic context is provided by the ADD Simple basemap and Overview place name layers together with the South pole and Antarctic circle layers.
The historic context is provided by the Five historic expedition routes and Historic stations layers. To show the travel direction of the expedition routes, we can create a trail of small arrow symbols by combining a simple line with custom dash pattern and a marker line:
So far, the map is pretty crowded because we see all five expeditions at once.
Let’s set up the Atlas map series, so we can create a dedicated map for each expedition.
Atlas Map Series
The historic expeditions have been digitized as ten line features in order to be able to distinguish between sections of the routes traveled by sea, land, and even air:
Focusing on the five earliest expeditions, all of them contain sea routes. We can therefore set up the Atlas by filtering the route features to get only the five sea routes:
This setup will ensure that our Atlas will generate a map series with one map per expedition leader.
Make sure to activate the Altas preview mode now.
Filtering Routes & Stations
Back in the main QGIS window, we now can access the @atlas_feature to filter the routes layer accordingly. We want to show the sea route feature, as well as any other route feature that belongs to the same expedition leader:
Fun With Labels
So far, our map only shows basic labels for geographic features. In the following steps, we will add labels to the expedition routes and historical stations. Finally, we’ll use a rule-based labeling hack to put the finishing touches on our map.
Smooth Route Labels
Many of the expedition routes are anything but straight. They twist and turn and so do the letters of any labels we try to put on them. This effect becomes particularly prominent, when using large label fonts.
To create smoother looking labels, we can use the Geometry Generator (in the Label Placement tab) to create a smoother base line for labeling using an expression like:
smooth(simplify($geometry, 100000), 2)
To show the station names and operating years in different colors, we can use HTML label formatting. To do so, we need to enable “Allow HTML formatting” (in the Label Text tab). Then we can build our label expression.
For this label, we combine three column (name, year_start, and year_end). Since year_end is empty (NULL) for some stations, it is important that we use the concat function (instead of the || operator). Otherwise, stations with a NULL value would not be labeled at all:
By creating multiple rules that all apply to the same (land) polygons in our base map, we can create a random snowflake pattern. Randomness is introduced on different levels:
The label font size is randomized, e.g. rand(15, 60).
The label rotation is randomized by using the “free (angled)” placement mode.
Different rules have different priorities, with higher priority values assigned to label rules with larger font sizes.
The snowflake color can be adjusted by changing the project variable flake_color (in Project Properties | Variables). This way, we can change the color of all snow flakes at once, without having to edit every individual rule.
So Much More
There’s much more to discover in this project. For example, the label substitutions used to shorten the island labels or the decorations added in the layout: