Open Location Code & what3words — why they are not right for addressing

David Piesse
5 min readMay 24, 2016

--

Both of these ideas; Open Location Code (OLC) by Google and what3words (w3w) are at their essence just trying to make a latitude and longitude easier to remember; understand and locate. Any pretext of helping find a house in a favela as it’s main goal is really only a use case.

Having used both systems; developed for both and analysed the underlying algorithms (as best we can with w3w) I feel there is a middle ground that neither solution wants to be for it’s own specific reasons.

w3w

what3words is a (roughly) 3m x 3m grid that covers the world. It has the same problems all other global projections have; and they have built their own proprietary referencing system to combat this as best they can.
Kudos; But by this not being open source knowledge we cannot confirm the actual accuracy of these areas both in terms of size and locality.

They say the dictionary they use is 25,000 — 40,000 words creating a rough total of 15–64 trillion possible combination to cover the 57 trillion 3m squares they have. They also prioritise these words so that land masses and populated areas get shorter, easier words to remember.
Similar words are separated so that you don’t get shop.toast.shoe close to shop.shoe.toast or shop.toast.shoes.

However they waste a lot if they truly are about giving everybody an address. Mid-Atlantic you don’t need to worry as much as in the middle of Manhattan, but both stick to the three words.
Although this betrays their name why not have shorter two-words for built up areas and four words for the atlantic?

This is where I got interested and built my own. No mathematics professor, no tweed jacket; not even a bunch of awards for creating a geo-grid across the world.
Just me in my spare bedroom coding away trying to work out how it can be done better for a particular cause.

OLC

Open Location Code is a Google (Zurich) based code library for giving a code to anywhere in the world. It is entirely based off of latitude and longitude tying it perfectly with GPS; and is indiscriminate with regards land, sea or population. It is a tiny amount of code for this algorithm, but has a few features that make it the best way to locate anything from a latitude & longitude.

Firstly it has scale. The code is built up of pairs of characters (e.g. 9C) that drill you into the next level of detail.
The first pair relates to a 20 by 20 degree square around the world (18 x 9 of them).
The second pair breaks this down to 1 degrees squares (20 by 20) within this 20 square degree area.
The third and forth pair do the same again with 0.05 and 0.0025 degrees.
That makes up roughly 10.3 billion areas.

Beyond that you can further refine up to 3 more characters, all of which are a 4x5 grid within the previous. At 10 characters (excluding the +) you have a area roughly 10m wide, at 11 characters it is only 3.4m x 2.7 ~ to w3w.

So to get to this area ( 6GCRMQPX+9GG) but people can’t remember that.
Cool — that is where w3w wins hands down. They have something that almost any literate people can understand.

The mash-up

However you can convert a OLC code into parts and potentially assign large levels of them a single word. Of the 162 top level areas only ~69 have any substantial population so we could assign only a few dozen words to over half the globe.
Think atlantic.something.something for the whole of the Atlantic ocean; or australia.something.something for Australia. This gives a high level drill down as to where you are. Large swathes of the globe can be covered with a few words; which both frees up word combinations, but also shortens codes eventually.

When you get to a urban area (lets say San Francisco) why not call that square in that area francisco.something.something or a word which is somewhat meaningful bay.something,something.

This is a merge of the two ideas. Provide some cohesion between local areas; but also make is understandable.
w3w will have two areas next to one another called surely.lowest.pound and wrong.steep.ranged. You have no clue they are next to one another or across the world.

By providing those higher level words that indicate an area (either a local name, landmark, or linked word [such as empire for New York]) you effectively have a extra word that can be somewhat ignored locally.

OLC does exactly this by removing the first 4 characters and using a local address such as MQPX9G Nairobi, Kenya. Intelligence built into API’s and code using this allows you to just enter the local code and it will give you the local position of this; So a guy standing in Nairobi only has to enter MQPX9G and he can find a 3m square.

Those 6 characters are effectively only 20⁶ (64 million) which is 8,000². So with only 8,000 words you can have a two letter address for anywhere locally (within 1 degree ~ 110km). Add in the local word instead of seemingly complete randomness you might get two touching squares called empire.roof.button and empire.rake.spin.

8,000 words can be made up of super short, non-plural words; making it even easier.
couches.modems.honestly (w3w) is terrible compared to empire.couch.modem. Both represent the same area of the same size, but if you lived in Poughkeepsie, NY which is honestly going to be the easier to remember (pun intended) especially if you are aware that empire is the first word of all other local squares.

Should you need more precision (say down to a under a meter) then you can just add a letter or number to the end.

If we need to add height / floors then this could be accomplished in a similar manner. Add in a .floor1 or maybe .dungeon or just .3 to the end and hey presto you have added a meaningful bit of data without adding that much complexity to the final code. w3w can’t do this.

Conclusion

By merging these two differing methods of ‘addressing the world’ a much better system with greater intelligence behind it can be used to aid the eventual codes provided; making then of more use, more understandable and more flexible to adaptation.

When creating a postal system for a favela you could reduce the number of words; provide a height element should it be needed; and really hone the system to work for those who need it.

Maybe we need to chaneg this again to stop using letters and words and switch to images. This allows illiterate people to draw their address. Maybe we could use an emoji-style system. Imagine living at :) :p

Please do leave comments

D

--

--