Googles solution sounds very familiar to what we used in the military: GRGs or geographical reference grids.
Every point on earth was contained within a box named with two letters. Within each box was a theoretically infinite number of digits that could be assigned.
Practically, we had immense precision with as few as 8 numbers - 4 each for the horizontal and vertical
axes on the map.
While flying Close Air Support missions, we could be flying 30k feet overhead and within seconds have our sensors on whatever the ground controller wanted us to look at.
It was a version of Lat/long, but far more intuitive with each digit representing a different order of magnitude of the base measurement unit.
Polar regions are tough, not many libraries support them. Lat/Lon represents a point, MGRS represents an area. This causes issues when converting between MGRS and lat/long and back again. Also, a single location can be represented by several MGRS coordinates since the numerical value is an offset from a line, the letters represent where this line is. Then we get into other issues. When converting from lat/lon we need to know what projection the data is in. I often have to make assumptions here, if my assumptions are wrong it could cause an error of many km, depending on how far away from the equator you are. There are several other edge cases I am probably no stating. If you are interested there is some pretty good sample code here: https://svn.osgeo.org/gdal/trunk/gdal/frmts/nitf/mgrs.c
The article doesn't talk about navigation, but referencing start or end point (geocoding, geohashing). The plus codes are also called open location codes and the pros and cons were recently on the frontpage https://news.ycombinator.com/item?id=16594188
Plus Codes is a "system is based on dividing the geographical surface of the Earth into tiny ‘tiled areas’, attributing a unique code to each of them. "
A couple of years ago I visited a startup which also tried mapping worldwide coordinates, what3words [1]. They map 3x3m squares to a combination of three words (language customizable). For example: the Eifel tower would be at combos.cove.split. They had some clever tricks for mapping short memorable words to densly populated areas and longer ones to the middle of the ocean. Their aim was similar, to enable talking about a place without the existing infrastructure of adresses and streetnames and for example make it possible to deliver mail in slums.
what3words is terrible technology, and also proprietary.
Quick, what direction do you go to get from combos.cove.split to reindeer.steak.rules? I made up the second address, but it highlights how completely useless what3words is for directions.
Navigating on a sphere can be counterintuitive[0] (not a problem street to street in practice, but the coordinates given by GP were far enough apart to possibly exhibit the issue).
It's a shame that google didn't go with this approach, although I assume it's because of the lack of portability between all the languages in that area. Maybe what3words should pivot into what3emoji.
Our WiFi network name has been our what3words for over a year now since my housemate set it. I'm not sure what their business model is, since this is the first I've heard of them since that.
I don't think I could remember 8GC2 CMXR+X6 (from the plus codes homepage) any better than latitude and longitude. Or spell that over the phone without using the NATO alphabet.
There are features of the plus codes that make it easier than you think to memorize and communicate them, however:
- Similar to a phone number, the code can be reduced to the last 4 or 6 digits in practice, because the "area code" (in this case, "8GC2") selects a large region (approximately the size of a metropolitan area) and thus can be omitted if referring to destinations in your local area.
- The letters are selected to be minimally confusable with each other, so you don't need to use the NATO alphabet.
They're private, proprietary, and online (it can decode regular three word combos offline, but the one word special locations need web access). Switching the order of words results in totally different locations. Google gave the example of "banana rabbit monkey" being in Argentina, "banana monkey rabbit" in Russia [0]. And while it's localized to more languages than just English, the friction when exchanging location data across language barriers seems problematic. For example, giving an English speaker something like "пропан.зачет.некий." in an image, spoken, or written on paper would be totally opaque and hard to even enter with a US keyboard, let alone commit to memory.
Coordinates are hard to get across without messing them up - any number corresponds to something in the vicinity and there's no checksum. This is supposed to be an alternative.
The government of that state has to adopt them to be really "it". Otherwise Google can adopt X solution, Here.com Y solution, Bing Maps Z and so on. Does it matter that Google has a "solution" when the government sends me the bill at another address?
> Or is this essentially an easier to read/remember version of latitude/longitude?
It's more like the hierarchical telephone numbering system. If you know it's local, the code can be much shorter. It doesn't need to be globally unique; just unique in the same city.
these "plus codes" sound sort of like a DNS system because humans are not good at remembering or typing purely numerical coordinates. For example decimal degrees in a common system:
48.756071,-122.482410
(a randomly chosen location in Bellingham, WA)
in WGS84 datum decimal degrees, six decimal places is accurate to about 0.11 meter, which is close enough for pretty much any human land navigation needs, and considerably better than the actual accuracy of a modern GPS+GLONASS+WAAS receiver.
if you really want to be super accurate for navigation purposes go for seven decimal places. Anything beyond seven is in the range of high precision GIS/surveying tool needs only.
so the question is how to take a string of lat/long coordinates such as the one above for bellingham and turn them into some sort of geographical code which humans can remember and type. Sort of like this:
the commentary elsewhere in this thread on the private, proprietary nature of what3words is quite valid. I'm not saying that this specific implementation is the best possible idea, but that the general idea of geocoding numbers into a consistent word-based system is something that is more easily remembered and written down by ordinary humans who do not interact with IP addresses and long strings of numbers on a daily basis.
try to remember a full ipv6 address vs. remembering a DNS hostname, for example.
- Maidenhead codes contain vowels, which the Plus code designers didn't want to use in order to avoid having codes spell words (which might have negative associations or be profane).
- The addition of the "+" character is felt to make it easier to autodetect addresses when provided to Google Maps or similar systems.
Anyone know how they get traffic data in India? I am quite amazed by how accurate and near-realtime their traffic maps are. While India is heavily Android, it can't all be from crowdfarmed GPS data, or is it?
Each symbol of the 11 characters in the plus code is in base 20. There are about 2500 emojis, meaning that you can encode 2 symbols from the plus code with one emoji (20*20=400, if you try to encode 3 symbols, it becomes 8000, which is way more than the current emoji count). So that would become 5 emojis, instead of 11 characters, which in my opinion would look quite nicer.
Given the data Google has, I'm sure they could come up with an efficient encoding scheme that would use far fewer emoji on average by prioritising popular coordinates.
Horrible title. This has nothing to do with navigation. Google didn't want to invest money/effort into properly mapping addresses in India. So they reinvented the lat/long system and call it "plus code".
No, there are no proper addresses for large slabs of India. The status quo is people using things like "Vijay Nagar, IFFCO Chowk, behind Maruti showroom" even for mailed correspondence.
For non-Indian readers "Vijay Nagar" is a neighborhood named "Vijay", "IFCCO Chowk" is an intersection named "IFFCO" (yes sometimes intersections have names and the names often have nothing to do with the streets that join there) and "Maruti" is an automobile brand.
I guess because the govt does not have a proper standard especially in rural areas. Some areas don't have proper roads so nobody from the govt visits those areas.
What3words (https://what3words.com/) offers a better solution IMO.
It offers a system to represent coordinate as 3 words and is localized in many languages.
Every point on earth was contained within a box named with two letters. Within each box was a theoretically infinite number of digits that could be assigned.
Practically, we had immense precision with as few as 8 numbers - 4 each for the horizontal and vertical axes on the map.
While flying Close Air Support missions, we could be flying 30k feet overhead and within seconds have our sensors on whatever the ground controller wanted us to look at.
It was a version of Lat/long, but far more intuitive with each digit representing a different order of magnitude of the base measurement unit.
That's an essential part of navigation, and one that falls down in many places.
The original blog post: https://india.googleblog.com/2018/03/searching-for-indian-ad...
Or is this essentially an easier to read/remember version of latitude/longitude?
I thought this would be about more clever pathfinding optimization in a part of the world where typical shortest-path optimizations are much harder.
[1] www.what3words.com
Quick, what direction do you go to get from combos.cove.split to reindeer.steak.rules? I made up the second address, but it highlights how completely useless what3words is for directions.
Worse than useless.
Quick, what direction do you go to get from 12.34567N, 12.34567W to 56.43210N, 23.87654E?
Not being able to immediately determine direction between 2 addresses isn't a failing.
It's a pretty simple piece of math.
[0]: https://www.greatcirclemapper.net/en/great-circle-mapper.htm...
- Similar to a phone number, the code can be reduced to the last 4 or 6 digits in practice, because the "area code" (in this case, "8GC2") selects a large region (approximately the size of a metropolitan area) and thus can be omitted if referring to destinations in your local area.
- The letters are selected to be minimally confusable with each other, so you don't need to use the NATO alphabet.
[0] https://github.com/google/open-location-code/wiki/Evaluation...
But what3words is proprietary and requires licensing, while Google's codes are open source.
Disclaimer: I used to work on Google Maps, including geocoding, but not this initiative.
It's more like the hierarchical telephone numbering system. If you know it's local, the code can be much shorter. It doesn't need to be globally unique; just unique in the same city.
48.756071,-122.482410
(a randomly chosen location in Bellingham, WA)
in WGS84 datum decimal degrees, six decimal places is accurate to about 0.11 meter, which is close enough for pretty much any human land navigation needs, and considerably better than the actual accuracy of a modern GPS+GLONASS+WAAS receiver.
if you really want to be super accurate for navigation purposes go for seven decimal places. Anything beyond seven is in the range of high precision GIS/surveying tool needs only.
https://gis.stackexchange.com/questions/8650/measuring-accur...
so the question is how to take a string of lat/long coordinates such as the one above for bellingham and turn them into some sort of geographical code which humans can remember and type. Sort of like this:
https://en.wikipedia.org/wiki/What3words
the commentary elsewhere in this thread on the private, proprietary nature of what3words is quite valid. I'm not saying that this specific implementation is the best possible idea, but that the general idea of geocoding numbers into a consistent word-based system is something that is more easily remembered and written down by ordinary humans who do not interact with IP addresses and long strings of numbers on a daily basis.
try to remember a full ipv6 address vs. remembering a DNS hostname, for example.
there also called open location code https://en.wikipedia.org/wiki/Open_Location_Code
I always wondered why this system hasn't "escaped" amateur radio and found uses elsewhere.
- Maidenhead codes contain vowels, which the Plus code designers didn't want to use in order to avoid having codes spell words (which might have negative associations or be profane).
- The addition of the "+" character is felt to make it easier to autodetect addresses when provided to Google Maps or similar systems.
Emoji adoption for any smartphone issue wouldn't be an issue.