Skip to Content

Planning a Virtual Orienteering Course

Last edited: Sat 3 Sep 2022

On this page, we'll show you how to create a course ready for a GPS-punching event. This could then be used for a MapRun event.

For quite a few years, we've been using MapRun for our weekday evening events. These tended to be urban score courses, but the system can cope with far more.

Here are some (hopefully) helpful videos on planning courses for MapRun. It is important to work through all the videos in order the first time you come to this.

Note that the map used by competitors would be produced in PurplePen in the usual way.

Before we start, a quick terminology explanation for the purists: Throughout I'll be using the term GPS as it is the phrase in common usage. I do, of course, mean GNSS. Most devices in use in the UK will have access to GPS (American), Glonass (Russian), and BeiDou (Chinese), with really modern ones also accessing Galileo (EU).

Quick Checklist

  1. Plan the course in the usual way in PPen, but with consideration to good GPS sites and particularly avoiding the chance of an accidental finish punch.
  2. Create a kmz. This will be the virtual base map.
  3. Plot your course on Google Earth - there are various ways to locate the control sites.
  4. Create a kml. This will be the virtual course.
  5. Generate a CheckSites code. This is for testing and Controlling.
  6. Use the CheckSites code to test the course on the ground.
  7. Do any changes needed.
  8. Send kml, kmz, ppen and base map to the MapRun administrator.

If this is for a Street Series event, please also note these requirements:

  • there are three courses (long, short, and accessible) - short and accessible punch controls in any order, long is an odd/even blocks course; accessible has a different map with accessibility warnings added
  • scoring is done by control number rounded down to nearest ten
  • the PPen files with the course on (usually one file for long/short and one for accessible) should just contain the all controls - don't use the PPen score course function
  • the purple Xs indicating a disallowed route are not used as they are hard to see in the dark - OOB hatching should be used instead
  • any roads over 30mph limit are marked as OOB
  • start and finish are within sight of registration
  • start and finish are on the road/carpark ie. accessible by wheelchair
  • any restrictions to wheelchair access in the area, eg. steps or width restrictions, are mapped on the accessible map using uncrossable boundary or OOB area in PPen
  • any controls which cannot reasonably be accessed by wheelchair are removed from the accessible map
  • there are sufficient controls within range of the start that someone in a wheelchair doing a fast walking pace can have a worthwhile course

More info on preparing the PPen file for a street series event is available here. It includes image templates you'll need to include for things like the key and the scoring system.

A kmz file is needed to provide an orienteering map on the app.

You will need an image file of the map, eg. png or jpg, to get started.

If you are lucky, the base map will be georeferenced already and the mapper will be able to provide you with a kmz.

Let's start by getting a feel for how to use Google Earth to plot courses...

When the control sites are easily seen on Google Earth, is it very easy to plot the course. This is likely to be doable for Hare and Squirrel at JOG, for instance, and certainly works well for Street Series events. Unless there will be a kite placed, the control must be clear on the ground.

Remember to put the controls in the correct order in the menu, from S1 to F1. For a score course, you still need S1 as the first in the list and F1 as the last, but the order in between doesn't matter.

When saving the kml file, please use the naming convention 'event course PXAC'. eg. Lydeard Hill JOG 2020 Hare PXAC PZ.kml The PXAC tells the app that it's a linear course - if it is a score use PXAS.

Road bends and road junctions are not good as they are very large and the competitor won't know which exact bit is supposed to be the control and can waste a lot of time (dangerously) crossing the road trying to find it.

A few tips for good virtual control sites that are easy to use:

  • path crossings
  • distinctive trees
  • lamposts / telegraph poles / pylons
  • signposts

For tall things, make sure you put the pin at the base. Often a shadow will be on the image which will help.

A slightly more technically advanced method using a smartphone in the field, but this allows you to get a fix on any control site that has a good enough GPS line of sight (and if it doesn't, it won't work for a virtual course anyway).

Of course, if you have a dedicated GPS unit, you can use that to log the points and then enter then into Google Earth as shown in the second half of the video.

If you have a kmz that matches the ground well, it can help with plotting courses if imported into Google Earth as you can simply drop pins onto features on the map. However, be very careful as there can be significant discrepancies.

Once you have output the course as a kml file and the map as a kmz file, there are two more steps to create a CheckSites code that will let you check the course works.

First you have to tile the kmz using MapRun Utils. Then you have to create the test event using CheckSites.

For more information on how to use the code to check the course, see Controlling for MapRun.

If producing the CheckSites code is too difficult, email the kml and kmz (or pdf if you can't make a kmz) to and you will get a CheckSites code back, hopefully within a few days but that depends on workload.


  • Create an all controls kml first. Test it and perfect the locations. Then copy it as many times as you have courses and in each one delete the controls you don't need.
  • For a pivot control (also known as a swing or butterfly, and probably many other things) don't place two pins. Place one and copy it, keeping the number the same. Then move it down the order. This way it will prevent the phone pinging frantically near the control as it hops back and forth between them.
  • Try to avoid controls in dense tree cover and down steep valleys. If unavoidable, consider placing something that the participant can report to prove they visited the control (eg. what colour peg was there?)
  • When the feature isn't mapped (I'm thinking particularly when using streetlamps on a Street Series event) add the dot in the centre of the control circle in PPen and place it on the correct side of the road. This can be a safety help as it can minimise road crossings.

Archived under: Event resources