Uploading a Course to MapRun6 app

Uploading a Course to MapRun6

MapRun6 (formerly called MapRunF, but we often call it by it's old name MapRun) is a GPS orienteering app available for iPhones as well as Android smartphones. Creating and uploading MapRun6 courses is more difficult than in the GPS Orienteering Run app due to some current limitations (such as requiring basemaps to have grid north at the top, not magnetic north), but it is currently our preferred app because you can manually punch missed controls AFTER completing the course and thus can put away your phone during the course if you have a printed map.


The many different sets of instructions on how to upload a course to MapRun6 can be confusing and complicated, but fortunately some recent software updates have made it a bit easier. Below are our preferred methods for getting a course into MapRun6 for courses created in various course setting software.


To upload a course to MapRun, you need to upload a KML file (the GPS positions of the course controls) and an optional KMZ basemap (see next section for how to skip the KMZ if desired).


There are two ways to upload a course to MapRun.

  • MapRun Checksites: For temporary courses (which can be on MapRun servers for a maximum of 3 months), anyone can upload the files to Checksites which will generate a 6-digit Checksites code that participants can enter into MapRun6 app to download the course onto their smartphone. Apart from the 3-month time limit, another drawback of Checksites is you can't look at other people's GPS tracks to learn from their chosen routes. But a benefit of Checksites is that it anyone can upload to it and it is a bit easier to use; or

  • MapRun Console: have your club MapRun administrator upload the KML and (real or fake) KMZ files to MapRun Console which has the added benefit of remaining on the MapRun server for 5 years in geographically organized folders and also supports viewing participant's GPS tracks.

How to Handle (or Skip) MapRun's requirement for a KMZ file

The most difficult aspect of uploading a course to MapRun is dealing with its very strict and loosely documented requirements for uploading a KMZ map with 512-pixel tiles that has been georeferenced with EPSG3857 and oriented so that the top of the map is grid north (not magnetic north). This can be done in OCAD or version 0.9.5+ of Open Orienteering Mapper for orienteering maps (or the OpenOrienteeringMap website if non-detailed Pseudo-O maps are sufficient). Instructions for creating a KMZ file for MapRun6 will be posted at a later time.

Alternatively, there are two workarounds if you don't want the hassle of generating a KMZ file and instead have participants carry a printed or PDF map for locating the start and finish and putting the phone in their pocket while they run. Participants will just see the OpenTopoMap rather than an orienteering map in the app. Skipping the KMZ file has the added benefit of preventing errors in georeferencing the course because right away you can immediately see if the controls are at the correct location in on the OpenTopoMap. If you include a KMZ basemap, it is very hard to determine if the controls were actually georeferenced properly.

To skip the KMZ step, either:

  • Upload the course to MapRun Checksites and only upload the KML file; or

  • Have your MapRun administrator upload any other tiled KMZ file (from another course) to MapRun Console and change the MapRun6 settings on the upload page for "Opacity (%) of Map Overlay" to 0% and "Allow the user to change this" to Locked.

If you use either of these methods, MapRun6 will display the controls on the built-in OpenTopoMap or Google Satellite map which gets automatically cached on a participant's phone if they open the course after they download it. You should remind participants to always try out the course when connected to the Internet by clicking "Go to Start" to make sure that the start and finish of the course displayed in the correct location on the basemap, OpenTopoMap, or Satellite map.

Options for Generating the MapRun KML file:

Regardless of whether you have created a proper KMZ file or skipped it as described in the previous step, you will need to generate a KML course waypoints file that provides the GPS coordinates of the controls to MapRun.


The following sections describe several alternative methods for creating a KML file, depending on which course setting software you use.


The easiest way of creating a KML file is probably to use OpenOrienteeringMap for pseudo-O street maps generated from OpenTopoMap/OpenStreetMap. However, that tool is really set up for Score-O type street orienteering maps. The detail of the maps is often not very good and there are no tools for control descriptions.


But if you have a georeferenced basemap, you can easily generate the KML using Condes or PurplePen as described below (also see our instructions on how to georeference a basemap).


Or you can plot or recreate the course in Google Earth or OO Mapper/OCAD and then manually create control descriptions. See next sections.

How to Generate the MapRun KML and KMZ files (for OpenOrienteeringMap Pseudo-O Courses):

OpenOrienteeringMap has a function to export the required MapRun KMZ and KML files. The maps are oriented so that the top is grid north (not magnetic north like typical orienteering maps) and lack contour lines and other details because they are generated from OpenStreetMaps data. But they make generating urban street-o type courses easy if you just want a quick training map. OpenOrienteeringMap creates Score-O courses only, so you may want to use image editing or Adobe Acrobat Pro software to connect the controls with lines if you are doing a typical point-to-point orienteering course.


1) Create the course in OpenOrienteeringMap following the on-screen instructions.

2) Export the PDF, KML, and KMZ files for the course.

3) Upload the KML and KMZ to MapRun (or Checksites and provide the Checksites code to the participants) to download in their MapRun6 app.

How to Generate the MapRun KML file (from Google Earth):

Note: you can create a simple course in Google Earth but you would need to provide separate control descriptions (if desired). If you have a KMZ basemap for the course, the Maprun Admin Console can generate a PurplePen file for printing the map in PurplePen (you could also add course descriptions). But in that case, it would probably be better just to create the course in PurplePen or Condes to start with.

  1. Create the course in Google Earth (Pro) by creating waypoints whose names/labels are numerical control codes or S1 and F1 for the start and finish.

  2. Save the KML file from Google Earth Pro and upload to MapRun via the administrator console or Checksites as described at the top of this page.

Note: you should not have two controls within about 30m of each other, otherwise MapRun6 will repeatedly punch one then the other until you move away from both. Therefore, you should not add two controls at the same location if you want a common control on the course. Instead you need to manually edit the KML file to copy one placemark name and coordinates and paste it in the later spot in the KML file where you want the control to be repeated. For example, for a loop containing S1,1,2/4,3,2/4,5,F1 instead of creating separate placemarks for 2 and 4, you would create one called 2 and copy and paste the information including and between the <Placemark > and </Placemark> tabs in the KML file so that the sequence in the KML is S1,1,2,3,2,5,F1). If you did this correctly, in MapRun6, the loop will be displayed properly with only a single control circle for the common control at 2/4 (e.g. S1,1,2/4,3,2/4,5,F1). See the tips at the end of this page for more details.


An alternative is to use a georeferenced map in course planning software that handles loops and can export KML such as Condes, PurplePen, or OpenOrienteeringMapper).

How to Generate the MapRun KML file (for Condes Courses):

Note: Condes 10+ has a function to export the required MapRun KML files.


  1. Create the course in Condes using a Georeferenced OCAD map (or georeferenced OO Mapper map saved in OCAD format).

  2. Export the KML file for a single course from Condes.

  3. (Optional): Open the KML file in Google Earth to make sure the controls are where you expect. If the controls are way off, there is either a problem with how the map was georeferenced or you might have entered a non-zero offset in Condes when adding the map to a Condes canvas. If the controls are off 20m-50m from where they should be, it might be possible to adjust them in Google Earth and resave the KML.

  4. (Optional): Open the KML file in Google Earth to make sure the controls are where you expect. If the controls are way off, there is a problem with how the map was georeferenced. If the controls are off 20m-50m from where they should be, in Google Earth (Pro) you can select "Properties" for a control and then drag it to the correct location and resave the KML file.

  5. Open the KML file in a text editor such as Notepad.

  6. Edit the start and finish placemark names in the KML to replace placemark name "S" with "S1" and "F" with "F1" (hopefully MapRun will fix their software to eliminate this silly step). If the controls use letters instead of numbers, you need to edit the controls names to be numerical such as "1" or "31". Save the file and then upload to MapRun via the administrator console or Checksites as described at the top of this page.

How to Generate the MapRun KML file (for PurplePen Courses):

Note: PurplePen doesn't have all the advanced course-planning features that Condes (below) provides, but it is the easiest course planning software to use if you want to use orienteering maps. PurplePen has a function to export courses as GPX files which can then be converted into the required MapRun KML files.


  1. Create the course in PurplePen using a Georeferenced OCAD or OO Mapper map.

  2. Export the GPX file for a single course from PurplePen.

  3. Convert the GPX file to KML using the tool at https://tools.widmann.ca/

  4. (Optional): Open the KML file in Google Earth to make sure the controls are where you expect. If the controls are way off, there is a problem with how the map was georeferenced. If the controls are off 20m-50m from where they should be, in Google Earth (Pro) you can select "Properties" for a control and then drag it to the correct location and resave the KML file.

  5. Open the KML file in a text editor such as Notepad.

  6. Edit the start and finish placemark names in the KML to replace placemark name "S" with "S1" and "F" with "F1" (hopefully MapRun will fix their software to eliminate this silly step). If the controls use letters instead of numbers, you need to edit the controls names to be numerical such as "1" or "31". Save the file and then upload to MapRun via the administrator console or Checksites as described at the top of this page.

How to Generate the MapRun KML file (from OO Mapper):

Since version 0.9.5, Open Orienteering Mapper has apparently included the ability to generate KML files for MapRun if the course was created using paths in OOM. If this works for you, please let us know the steps you took and we can update these instructions.

Tips for Course Planners to Avoid MapRun6 problems:

Here are some things for course planners to consider to avoid potential problems when participants use MapRun:

  • If orienteers will be doing the MapRun course later when there are no control flags, ensure the Start and Finish are on identifiable points on the map, rather than an open area because it will be difficult to know the precise location to go to to have MapRun beep in the absence of control flags.

  • Maprun will record the course as finished as soon as it is within 10-15m of the Finish control. Therefore, make sure to place the Finish in a location that the runners will not run by, otherwise it will be punched and MapRun will stop recording. Having the Start and Finish at the exact same spot is also usually fine.

  • Maprun will beep when 10-15m from a control regardless of whether there are obstacles such as fences in the way. Either avoid these control locations or remind participants that they need to physically go to the control (rather than electronically punching "through" an uncrossable fence for example).

  • Maprun currently requires the start to be named "S1" and the finish to be named "F1" in the KML file. If you use the default "S" and "F" names in Condes or PurplePen, you will have to manually edit the KML to rename these, but you can save a bit of time by renaming them to S1 and F1 in Condes or PurplePen before exporting a KML.

  • If there are two or more control numbers within 20m (or at the same location in the case of loops), MapRun will go bonkers beeping repeatedly recording visits for the first control, then the next, then the first, then the next, etc, etc and generally completely mess up the tracking. To avoid this if you have loops on the course (i.e., with common control locations visited more than once), the KML file should use the control code numbers for the location name (e.g. Figure 2) rather than the default control sequence numbers (e.g. Figure 1) so that the common controls on the loops use the same name (e.g. the control number), not different names (e.g. the sequence number).


For example, if the course has a loop like Figure 1, the corresponding KML file would have controls named: S1-1-2-3-4-F1 and MapRun6 would go crazy punching 1 and 4 repeatedly whenever the runner was near Control 1/4. However, there would be no problems if as in Figure 2, the KML uses the control codes rather than the sequence number as the "name" of each control. Thus, as shown in Figure 2, you could change the course planning software to refer to the controls using control numbers (rather than sequence) before you export the KML so that the KML file would have controls named: S1-31-32-33-31-F1. Note that in Figure 2 which is the correct way, Control 31 is repeated. In the incorrect example shown in Figure 1, there are two different sequence numbers (1 and 4) used for the same control location, which causes big problems in MapRun6.


Alternatively, you can just manually edit the KML file so that the same code repeated for each common control (e.g. use location name 31 instead of 1 and 4 for the examples below).


Once you import the KML into MapRun6, it will replace the control code numbers with sequence numbers, so that it will display something like Figure 1 in MapRun6. The loops will work correctly as long as there weren't two different control names imported for the same control location.


Figure 1: Loops using Control Sequence Numbers as the location Name in the KML file will cause big problems in MapRun (because it treats locations 1 and 4 as separate controls)

Figure 2: Loops using Control Code Numbers as the location Name in the KML file will work fine in MapRun (because the location named 31 is simply repeated in the KML)