DEV Community

Cover image for Make Your Own Tourist Map
Ola Campus Pune for Ola Campus Pune

Posted on • Originally published at

Make Your Own Tourist Map

Hey everyone! I am Devdatta Tengshe, Over the last week, I’ve been planning a visit to Singapore. Along with the bare necessities like air tickets, visa, and hotel stay, I also had to plan my day-to-day itinerary and list the places I would visit. I began my research by looking at Instagram, vlogs on YouTube, and travel blogs. This gave me a list of sites, each more interesting than the last. I’m a big foodie, and Singapore is known for its culinary delights. My list was full of various restaurants and hawkers markets. How would I narrow down the list to fit the few days I had?

I put on my GIS analyst hat and decided that I should first place all of these on a paper map, filter them, and finally plan my itinerary based on which places were close to each other. This started my search for a “good map”, which I could use to place all these locations, and that’s where the trouble began.

Most maps are made with a specific audience in mind. A topographic map is meant for those interested in natural features; the famous Tube map is made for those figuring out which subway line to take, and so on. However, a map can surreptitiously nudge your thoughts to intended points of view while you remain blissfully unaware. There is a fantastic book called ‘How to Lie with Maps’ which I recommend to everyone on this topic.

While searching for good tourist maps of Singapore, I first looked at Google Maps. Although a fantastic technology for interaction, Google Maps makes for a terrible printed map. This was designed with the primary purpose of driving and is not as beneficial when walking or taking public transport.

Singapore has an excellent public transport system, especially the metro – MRT. It’s cheap, effective, and covers the entire city. I planned to use the MRT exclusively and looked for a map that I could download for the same. I found the following map helpful in figuring out which line to take; it is not to scale and doesn’t show cardinal directions or distances well. It doesn’t have roads and areas marked, which is a big problem if you are planning which places to visit.

Ref. map

I finally looked at some online tourist maps, but they were more focused on the shopping districts, and the resolution was too low to print out and still legible. I’m a GIS Analyst- I make maps for a living! I can create a map which meets my requirements. I’m documenting those steps so you can also make one for your future travels. I’ll be using QGIS and open data to make this. For Inspiration, I looked here. This shows you how to get a symbology like Google Maps from OSM data. I used this as my base map.

Data Collection

The first step was to download data for Singapore from the OSM database. I looked at Geofabrik. Which has data for Malaysia, Singapore, and Brunei in one PBF file. Since I wanted to create a map solely for Singapore, I extracted data falling within Singapore’s bounding box. To do this, I went to the Open Street Map website and navigated the map to cover only Singapore (my bounding box). By clicking on ‘Export’, the coordinates of the display extent were extracted.

Extracted map

Using GDAL, I exported the data for my area of interest to a GeoPackage using the following command –

ogr2ogr -f GPKG -spat 103.5688 1.1734 104.1202 1.4844 singapore.gpkg malaysia-singapore-brunei-latest.osm.pbf

Enter fullscreen mode Exit fullscreen mode

Next, I needed location data for MRT stations. These were sourced here.

Data Processing in QGIS

I began by adding the lines and the multi-polygons from the GeoPackage to a map on QGIS. There was a lot of data, and I only needed some of it.

  • The first thing was to make the map background Blue by going to Project >> Properties >> General and selecting a blue color.

Result Map

I got a map like this.

Filtered map

  • The Coastlines are not in the Polygons but in the line Layer. I duplicated the Layer, and added a feature filter with the following query: "other_tags" LIKE '%coastline%'

  • Then I Manually Selected the lines that represented the coastline of Singapore and ran the tool Polygonize. This created a Polygon for the Island Boundaries.

  • I symbolized the Layer with the colour #eceae6 and deleted the duplicated line layer.

  • To get a Google Maps like symbology, I downloaded the pre-existing style files created by Anita Graser, which can be downloaded here.

  • I applied the styles to the Line & Multipolygon layers by right-clicking and in the Style tab Style >> Load Style >> Load from File

Layered Map

Once I set the symbology on the Lines and the multipolygons, I ended up a map that looked like this


  • I now had a Road Map, and only needed to add the MRT related data. The OSM dataset has the complete MRT lines in the lines dataset.

  • I added the lines dataset to the map, and then applied a feature filter with the following query: "other_tags" LIKE '%subway%' AND "other_tags" NOT LIKE '%station%' (I selected all lines which have subways in them, but not the stations)

  • I symbolized the subway routes using the value in the name column. I have shared a possible style file here.

  • Next, I added the MRT Stations file as a Delimited Text File. I enabled Labels on this Layer. I removed the ‘MRT STATION’ from each of the labels, by using the expression: replace( "STN_NAME" ,' MRT STATION', '')


You can add any other data that you wish to the map and customize it to your requirements. In my case, I wanted to show the most important Hawker Centers, and hence I created this CSV file. I added this to the Map, and symbolized it using large symbols, to get a map like this.


You can directly export this Map to an Image or create a Print Layout and then export it from there.


The final output looked like this. The good thing about the colors is that it even looked good when printed using a greyscale printer.

Final Result_1

Final Result_2

Top comments (1)

alexanderdanks profile image
Alexander Danks • Edited

Making your own tourist map is a fun and creative way to plan your next adventure. By customizing a map to your interests and preferences, you can ensure that you don't miss any must-see attractions, such as the african renaissance monument in Dakar, Senegal. This iconic statue, standing at 160 feet tall, is a symbol of African resilience and a popular destination for visitors from around the world. By adding it to your personalized tourist map, you can easily plan your itinerary around this must-see attraction. Additionally, creating your own map allows you to add in other points of interest, such as local restaurants and hidden gems, that might not be included in a standard tourist guide. So why not get creative and design your own tourist map for your next trip? It's a great way to make your journey truly your own.

An Animated Guide to Node.js Event Loop

>> Check out this classic DEV post <<