Tutorial: Creating a vector map using OpenStreetMap and Maperitive

With the work I do on rallies, I often need a vector map to represent each spectator point or setup location.

Until now I haven’t found a vector map solution, so instead I’ve been using TIF screenshots of Google Maps, but the quality isn’t there for flexibility and resizing, so I’ve been looking for a way of making vector maps.

It took me a while but I’ve been able to put together a workflow for creating vector maps without tracing Google Maps that I thought I’d share.

This workflow is on a PC, where you’ll need Maperitive and Adobe Illustrator. I’m using Illustrator because I have a licence as part of Adobe Creative Cloud, but if you don’t have a licence you can use open source alternative Inkscape instead.

Download Maperitive

Maperitive is a free program you can use for drawing maps from GPS data or OpenStreetMap exports. You can customise your maps, what is shown and how they look, then export the maps as SVG vector files for Illustrator or Inkscape.

Download the latest version of Maperitive from the Maperitive website »

Once the ZIP file has downloaded, extract it (if it hasn’t automatically extracted itself). We’ll run Maperitive in a later step.

If you like Maperitive, you can make a donation to the developer on their website.

Export map from OpenStreetMap

Now that we have all the tools we need, time to export our map. For this, we’ll use OpenStreetMap, which is an open source Google Maps alternative that supports exporting data that will work with Maperitive.

First, visit the OpenStreetMap website »

Next, you’ll see a Search box under the logo on the top left hand side. Type in your search query and click Go.

In the Search Results, click on the correct one that matches what you were looking for. This will depend on how exact or vague your search query was.

OpenStreetMap

From here, zoom in on your map and make the display on the right hand side match what you need in your vector map using the buttons on the far right.

OpenStreetMap Zoomed In on Adelaide

Once you’re happy with the map you can see, in the top left hand menu click the “Export” button. By default it will export the entire viewable area, but you can manually select a different area if you need to.

Export OpenStreetMap Data

Once you’re happy, click the blue “Export” button in the half hand column. This will save your data export to your Downloads folder.

Making your vector map with Maperitive

Now we need to run Maperitive so we can import our OpenStreetMap data, and export our vector map.

First, we’ll need to run Maperitive. Find the folder you saved Maperitive in, and open Maperitive.exe.

Once Maperitive has loaded, go to the File menu and click on “Open Map Sources”. Navigate to where your OpenStreetMap export file is, and select it.

Depending on how detailed your map is, it may take a while for it to load fully. You’ll see little squares loading with more data being displayed. When the map is still, you’re good to go.

At this point you can play with textures, manipulate your map, add gradients, and more. Personally, I prefer to make adjustments in Illustrator, but entirely up to you.

Maperitive

Zoom in and adjust your map so that the viewport is exactly what you want to export as your vector. Once you’re happy with your map, click on the Tools menu, then click either “Export as SVG (Inkscape)” or “Export as SVG (Adobe Illustrator)” depending on what program you’re using.

Save it, and you’re done! Pat yourself on the back, you have a vector map.

By default Maperitive stores its exported files in the output directory, which is in the Maperitive folder. Look for ‘output.svg’. Rename it to whatever the map is, right click on it, and open it in Inkscape or Illustrator.

As I mention, I’ve chosen Illustrator, and I get a vector file full of grouped assets.

Vector Map in Adobe Illustrator

From here, I can delete the grid lines, which I don’t typically need, change the level of detail, and add any extra lines I might need. In my case, here is where I would add the stage outline on relevant roads and add safety detail about a spectator point.

Note to Mac users

According to the Maperitive developers, it works on a Mac if you use Mono, an open source, cross platform .NET framework. You’ll need to install Mono, download Maperitive, then run Maperitive from the Terminal using the command mono maperitive.exe.

While you are able to open Maperitive using this method, I found it to be an incredibly frustrating experience. Mono kept crashing, freezing, and was incredibly slow to respond in general.

After persisting for a while I reached for a Windows 10 computer I had at home and the experience was much easier.

I’d suggest if you want to create vector maps on a Mac, you’d likely get better results running a virtual Windows machine rather than Mono. Or just borrow a Windows machine from a friend for 5 or 10 minutes.

Conclusion

Well there you have it. A pretty easy, quick and free way to create high quality vector maps. Do you have another workflow you want to share? Let me know in the comments!

Comments

Related posts

Search Got your head in the cloud? Cloud computing made simple