5 ms·
Actually it's that those MapCodes are incomplete. They're missing the country/state designation. If you look up "Ireland 0C.T4" or "US-AK 0C.T4" you should get
by lstamour 12y ago
Actually it's that those MapCodes are incomplete. They're missing the country/state designation. If you look up "Ireland 0C.T4" or "US-AK 0C.T4" you should get the correct results.
I'll cite a .doc file here, it's also available on the Developers page:
> 1. Codes only need to be accurate enough for public, every-day use. At the human scale, when you are within a few meters of a destination, you are “there”.
> 4. People live within a “country context”. Addresses seldom include a country name. Unless clearly stated otherwise, they can safely be assumed to be in “this” country. Codes that are known to be within a particular territory can be designed to be much shorter. For example, every location in The Netherlands can be uniquely specified with at most 6 letters . Even in a large country like India, at most 7 letters are needed.
> 6. Short codes are reserved for areas where the population density is high. For example, every locations in The Netherlands can be represented by a unique 6-letter mapcode. However, the majority of the population is concentrated in a dozen urban areas totaling less than 3,000 km2 (1,800 square miles). By reserving the 5-letter mapcodes for these areas, half the population of The Netherlands can be found using 5-letter codes. On average, mapcodes for relevant locations in The Netherlands are thus closer to 5 letters than to 6 letters. In fact, a significant percentage of the population can be found in 100 km2 of city centers, which can be covered by 4-letter mapcodes.
> Based on these ideas, we envisaged a system that would work anywhere on Earth, and would (on average) provide the shortest possible codes to everybody. By using massive amounts of data gathered over the past 30 years by mapping company Tele Atlas (merged into the TomTom Group in 2008), a data table was constructed ...
> Finally, on top of any and all national mapcodes a location may have, it also always has a 9-letter, context-less map code.
> To understand mapcode accuracy, you need to understand that a specific mapcode defines a specific location X, but represents all the locations within a certain distance meters of X. For example, the Dutch mapcode “49.4V” decodes into coordinate 52.376514, 4.908542. This does not only mean that coordinate 52.376514,4.908542 can be represented by mapcode 49.4V, but that all coordinates within roughly 5 meters of that coordinate can also be represented by mapcode 49.4V.
(it continues to describe "high-precision mapcodes")
Why did they make it?
> The mapcode system was revived and worked out in 2006 when TomTom decided to expand their operations to countries like India and China. It was difficult to sell navigation devices in these countries, among other things because a significant part of the population lives without address, lacking not just house numbers but often even street names, which often made it hard or even impossible to enter a destination. It was thought that the introduction of a simple and ubiquitous system for representing locations (and hence destinations) would in due time make navigation devices as welcome there as anywhere else.
- Alupis 12y agoAny reference to how they came up with any given Map Code? Like how 52.508957, 4.769173 became US-AK 81.J4W? I see they have come up with them for all locations, but how can I take a given coordinate and surmise it's MapCode, or the reverse (without their API or website)?
- lstamour 12y agoGoal #3 on their list was: > A conversion need not just be based on formulae. A respectable amount of data may be used as part of an algorithm. Which is why when you go to the downloads page, you'll find sources in C, JavaScript and Java, but they all include "data tables". There are a few other restrictions, though it's somewhat unclear how relevant they are here without inspecting the tables closer: > One such limit is to use only rectangular areas in our definitions. Another is to limit the size of the “context” data table to about 16,000 records. So it's not something you can do without the data tables. And for ease of use, they have disambiguation routines for country/state input.
- Alupis 12y agoHmm, I just took a look at their Java SDK... (clearly just sample code, but intended for embedding into your project to get going quickly) They make a lot of assumptions, and a lot of hard-coded values. For example, they seem to have lots of city names and country names hard-coded into a giant String array. ISO country codes are hard-coded (probably a safe assumption so-long as new countries are not added), many "magic numbers". Overall, I think these things are acceptable... but I don't necessarily like relying on the assumptions that "things today should be the same tomorrow". With plain old coordinates, my software would never care if the ISO added new country codes or what-have-you. I see they intent this to be mainly for human consumption -- but is US-AK 81.J4W really any more memorable than 52.508957, 4.769173? I'd probably end up writing both down personally, which means the coordinates would suit me just fine.
- frankus 12y ago81.JW4 is a lot easier to tell someone over the phone or transcribe from a business card or billboard, and it's pretty unlikely that the US-AK part would be ambiguous in those contexts. And if it is, a simple "which 81.JW4 did you mean?" would probably disambiguate pretty effectively.