The mapcode system is a proprietary geocode system consisting of two groups of letters and digits, separated by a dot. It represents a location on the surface of the Earth, within the context of a separately specified country or territory. For example, the entrance to the elevator of the Eiffel Tower in Paris is “France 4J.Q2”. As with postal addresses, it is often unnecessary to explicitly mention the country.
The mapcode algorithm defines how a WGS 84 coordinate (a latitude and longitude) can be converted into a mapcode, and vice versa. Mapcodes may be supported on an automotive navigation system. As a unit of Nokia, HERE supported Mapcode, and mapcode locations remain searchable in HERE WeGo, though mapcodes are no longer exposed in the interface nor shareable from the app.
The mapcode system was designed specifically as a free, brand-less, international standard for representing any location on the surface of the Earth by a short, easy to recognize and remember “code”, usually consisting of between 4 and 7 letters and digits. The shortness is the key differentiating factor between mapcodes and other location references; more densely populated areas are designated with shorter (4 character) codes.
The brevity of mapcodes was achieved through a combination of several ideas:
- Codes need only be accurate enough for human, everyday use. On the human scale, when you are within a few meters of a destination, you are "there".
- Shorter codes are possible within the context of a particular territory. For example: there are enough different combinations of 9 digits and letters to give every square meter on the surface of the Earth a different code. But to give every square meter within the Netherlands a unique code, only 6 digits and letters are required.
- Not all codes have to be the same length. Shorter codes are reserved for densely populated areas.
The last idea, especially, yields very good results. For example, although every location within the Netherlands can be identified by a 6-letter mapcode, half of the Dutch population can be found in about 40 cities and densely populated areas that together comprise less than 6,000 square kilometers. By reserving 5-letter mapcodes for these areas, half of the population can thus be reached with 5 mapcode letters. Since human dwellings and businesses are usually the more relevant locations in daily human life, this means that the relevant locations in the Netherlands have 5-letter mapcodes more often than 6-letter mapcodes. In fact, a significant number of people live in the 100 square kilometers of very densely populated city centers of Amsterdam, Rotterdam, The Hague, Eindhoven and Utrecht, which are covered by 4-letter codes. The mapcode system thus defines a population-density-based code division for all (roughly 200) countries on Earth, all (roughly 100) overseas territories, and roughly 240 subdivisions (provinces, states, oblasts, etc.). With the exception of Antarctica and the international waters, few localities on the surface of the Earth require a mapcode longer than 7 letters.
Note that mapcodes can in fact be made arbitrarily precise: at the cost of two extra characters, a mapcode is guaranteed to be less than 25 centimeters from the original coordinate. Every character added increases the accuracy further by a factor of 30. However, the mapcode documentation states that this defeats the key purpose of the mapcode system: to offer the simplest possible codes appropriate for public, every-day use.
The mapcode system was developed in 2001 by TomTom's Pieter Geelen and Harold Goddijn, soon after the GPS satellite signals were opened up for civilian use. It was decided to donate the mapcode system to the public domain in 2008. The algorithms and data tables are maintained by the Mapcode Foundation, which provides source code and specifications free of charge to any organization that wants to support mapcodes. The mapcode system is the subject of a patent application and a standard filed at the International Organization for Standardization.