OpenStreetMap

The moment I launched Navmii GPS I was presented with 3 words that looked like this:

https://map.what3words.com/

I started looking for the explanation and found that’s from the service called what3words, that attempts to solve the user-unfriendliness of GPS coordinates by splitting the whole world into 3m x 3m squares and assigning a unique set of 3 words to every location:

what3words website

Now, I got all excited and thought this is going to be the best thing ever, but my wife was skeptical and made a great point:

what3words address for a Robin Williams bench has an address of “script.export.noble”. Move 3 meters east and you’ll get “votes.began.hours”. So it is allows you to precisely locate a feature. But here’s the problem - you can’t infer anything from these words. Unless you have an access to a device that has a mapping available, you can’t know what continent it is on. This may not be the best use case, but when you have an address of “5 Child Street, Boston, Massachusetts, USA”, you can assume “6 Child Street, Boston, Massachusetts, USA” will be somewhere nearby.

Okay, so I was less hyped and started looking into the way the words are generated, and it turned out the algorithm and the data is not in a public domain, and you need to use their REST API or offline SDK to perform the mapping.

Our goal is for what3words to become a global standard for communicating location. At the moment, the core what3words algorithms and data are not in the public domain. In the future, we may release some or all of our source code – we will continually evaluate the business case for doing this.

http://developer.what3words.com/pricing/

And then I’ve read this in their API License terms:

You must not pre-fetch, cache, index, copy, re-utilise, extract or store any what3words Data.

Well… you can contact them to get the SDK containing the data, but… I am not sure I like the idea of a company pushing a global addressing standard that you can’t freely use. I’ve recently read w3w is selected by Mongolian Post office to provide addresses for locations that don’t really have an official address. It will be interesting to see how this works in real life.

Another thing I encountered during my search for navigation was Mapcode (used, for example in Here Android app).

http://www.mapcode.com

Originally created by TomTom, this system does not really rely on any centralized data. The algorithm, however, is patented:

In order to prevent misuse, unauthorised alterations, copying or commercial exploitation, please note that the ideas and algorithms behind the mapcode system have been patented and that the term “mapcode” is a registered trademark of the Stichting Mapcode Foundation. Our mapcode source code is released Apache License Version 2.0.

A good thing about Mapcode is that it shortens the coordinates to manageable tokens, and you can select the representation that better suits your needs. And the best part is that you don’t need any server interaction for it all to work.

[rye@delorean ~]$ python3
Python 3.4.3 (default, Jun 13 2016, 16:33:53)
Type "help", "copyright", "credits" or "license" for more information.
>>> import mapcode
>>> mapcode.encode(42.52838, -83.36005)
[('7S.65B', 'US-MI'), ('S3K.6YD', 'US-MI'), ('CDS1.XWV', 'US-MI'), ... ]
>>> mapcode.decode('US-MI 7S.65B')
(42.528403, -83.360037)

Close enough.

Okay, guess what part of the world “US-MI 7S.65B” is in? How about bugs.bumps.glue? And I am pretty sure it is easy to figure out that “US-MI 7S.659” is nearby.

On the other hand, embedding the country/state into the code can cause the same issues as the country borders in disputed territories. The location above also has an international address of “T8BB9.T204”, which has the same problems as w3w one, except that there are neither bugs nor glue.

So, what do you think? Does a world need a GPS coordinate shortener and if so, what would you use?

Location: North Farmington, Farmington Hills, Oakland County, Michigan, 48322, United States

Discussion

Comment from orson on 27 June 2016 at 04:30

I like Plus Codes/Open Location Code. It doesn’t require a database of words like w3w or a database of locations like mapcode. It also has a nice feature where codes that are closer together tend to have the same prefix, the more letters that match, the closer it is. So any code that begins with 86 is roughly in the the central timezone of the US. 85 is Mountain time, etc. The location you mentioned near Detroit is 86JRGJHQ+CX or 86JRGJHQ+ if you don’t need to be as precise

http://openlocationcode.com/

Comment from Vincent de Phily on 27 June 2016 at 09:46

I stay away from w3w, mostly because it isn’t free but also because it has only one precision, and is rooted in one language (they make other languages available, but converting is no fun).

IMHO a Lat/Long encoding shoud:

  • be completely free
  • be short enough to remember
  • be language neutral
  • have a variable precision
  • have an error correction

I don’t think that having nearby locations share similar codes is that important, since you’re going to ask your device to show you the map anyway, and the error correction protects you. But most elligible systems have that property anyway.

The problem is that we have so many competing similar solutions, and that none have a clear popularity advantage. Some are backed by a company, which helps adoption (sadly w3w seems so far to be winning the marketing game) and some are pure free systems.

Another annoyance is that because they are all similar, it’s hard to tell one code from another (say an openpostcode one vs an openlocationcode one).

These days I’m kind of tempted to follow openlocationcode. It doesn’t define an error correction code, but its Google backing makes it more likely than others to reach critical mass. Country-specific codes like openpostcode are still atractive, though.

Comment from karussell on 27 June 2016 at 12:48

Using a web service for this kind of algorithmic work makes no sense to me and I’m also in favour of open location code or ireland its ‘open post code’: http://www.openpostcode.org/

See here for a good comparison: https://github.com/google/open-location-code/blob/master/docs/comparison.adoc

Comment from PlaneMad on 29 June 2016 at 08:07

Like Vincent de Phily says, my biggest issue with w3w is its language specific. Why Mongolia would chose to impose English as a prerequisite on its citizens to find locations within the country is beyond me.

A wild idea is some kind of spherical coordinates using the closest globally recognized location like an IATA airport code.

Like BOM 13.62 121.2 -> 13.62km and 121.2degrees southeast of Mumbai International Airport, India

Comment from ryebread on 1 July 2016 at 01:38

Thank you for the replies and the pointer to Open Location Codes. A friend in Ireland confirmed they have Eircode which has a form of “A65 F4E2” and maps 1:1 to a postal address (not lat/long). Open Post Code also seems to be geared towards Ireland, but can be configured with different parameters for the rest of the world.

… aand Wired has just covered w3w, mentioning the inability to infer the location from the code, but failing to mention the single point of failure and the proprietary nature of their database.

Comment from Piskvor on 8 July 2016 at 13:50

Single point of failure? More like a cluster of SPOFs. Let’s see what you need for converting “vendor.lock.in” into a location:

  • some computing device
  • implies functional and charged device
  • that can and may connect to the Internet
  • implies data coverage and access (data roaming, anyone)
  • the w3w servers to be up and operational
  • the w3w company to be up and operational (and willing to respond (for free?))

The last point is especially relevant on a longer timescale than startups usually even imagine:

I came over at once to London, called in my own person at `teach.charm.table`,
threw Mrs Hudson into violent hysterics, and found that Mycroft
had preserved my rooms and my papers exactly as they had always been.

How is that readable, twenty years from now? The same issue goes for all other encoding systems: okay for automated processing, worse for humans; but for proprietary algorithms, it’s especially problematic. We’ve had enough black-box formats so far - this, essentially, would make w3w the gatekeeper of all things of location; it’s unlikely they’d ever opensource (that which is probably) their main source of revenue.

Comment from ryebread on 10 July 2016 at 12:29

@Piskvor, yes, that’s a cluster of SPOFs. The company may claim that hey, you can use the SDK to get the words offline and you’ll no longer need to connect to the servers, but that raises the question of data usage license.

Yes, they say about opensourcing their something, but it does not make sense to do that, since the whole w3w service is basically a hash lookup where the dataset is 300KB-1.1MB (as seen in Navmii).

Log in to leave a comment