The "S2" geometry system (http://s2geometry.io/) is what Google Maps and many other large systems use. It has a small bias towards the poles in terms of some S2 cells being slightly larger than others at the extremes but the bias is pretty minimal.
Another system, Uber's H3 (https://eng.uber.com/h3/), handles this problem in an even better way, although it loses some of the benefits of S2, such as having fine-grained cells no longer exactly fitting into their parent cells. It has other benefits however.
One thing missing from all of these system, including W3W, is that none of them have a height component. If I go to a party in a strange condo and need to call for an ambulance, there is a huge difference between being on the first floor and the fiftieth floor of the same building and W3W does nothing to solve this problem.
Since people appreciate height from street level differently than raw altitude, both will be accommodated in my system.
[1] https://gis.stackexchange.com/a/195696
Also don't discount the benefit of their distribution of the words. If you're using voice input and trying to get somewhere, the system can guess which of multiple inputs you mean. If you're in Louisville Kentucky you're more likely to be trying to get to "captain.water.water" (a ~90 minute drive from downtown) than "captains.water.water" (located on an island in the North Atlantic). Do you have a mechanism (maybe a check digit?) to help with that?
"captain.water.water" => ~90 minutes from Louisville, Kentucky
"captains.water.water" => island in the North Atlantic
That's crazy. I mean, "..water" should be a contiguous area. With "*.water.water" a contiguous part of it.
The system pretty explicitly considers all squares equal, without a hierarchy such as you envision. There are no identifiers for larger agglomerations of individual squares.
(And more specifically, where identifiers are hierarchical, you generally have the larger scope first, not last. URLs are a bizarre exception.)
But (and maybe I'm just too cynical) the huge benefit for W3W is that it's much harder to reverse engineer the identifier-assignment code. So only W3W can generate valid identifiers.
People set them up that way in practice because they prefer thinking that way. Or, I guess, because they want to sort their URLs meaningfully. Does that happen?
But maybe you're right that most people don't understand that, given how adversaries exploit stuff like "games.apple.com.foobar.hosting.tw". You wouldn't fall for that if you understood the system.
If one of the words is slightly wrong, then you want it to be obvious.
If the Kentucky emergency operator adds an extra s they will see that it can’t be right. With the contiguous numbering the ambulance would be close, but probably still unable to find you.
See page 23 of the patent: https://patentscope.wipo.int/search/docs2/pct/WO2014170646/p...
There is quite a body of research into equal-area hierarchical partitions of Sphere. Adressing there is mostly neither trivial nor intuitive and also not compatible with most raster data formats when it comes to storage.
Discrete Global Grid System (DGGS, Pyxis), HealPIX, H3 as variant of DGGRID, EQ_REGIONS, just to name those I remember.
So I'm watching ;)
Want to shift a little to the east? 4CFM+JX works, but 4CFM+JY? Whoops. How about north or south? Maybe there's a way to do that, but I haven't found it yet.
How about upping the precision? The size of the square is maybe 4X the W3W grid cell, but not aware of a way for plus codes to achieve a smaller cell.
I'm not out here to bash everybody else's solutions. They're all pretty good, particularly when you limit them to particular applications. Mine just happens to be a slightly improved approach, and slightly less full of drawbacks than everybody else's.
-----------------
>Plus Codes have little application outside building addressing.
This claim needs some arguing.
>If I tell you I'm at 4CFM+JW, come get me, you're going to be pretty helpless, because I didn't include the city.
So why would you tell me that? Either include the city, or use a longer plus code that includes the city.
Example from the spec[1]:
>>Nairobi Youth Sports Organization and Information Centre in Kibera, Nairobi, has the Open Location Code "6GCRMQPX9G". Using the location of Nairobi, the code can be shortened to "MQPX9G".
>How about upping the precision?
Use longer codes! It's all in the spec[1]. Again, quote:
>>Using a single grid refinement step, we have an 11 digit code that represents a 1/32000° by 1/40000° area (roughly 3.4 by 2.7 meters at the equator).
Now, regarding this:
>Want to shift a little to the east? 4CFM+JX works, but 4CFM+JY?
This is by design; some symbols were omitted to avoid having words in codes (which, as TFA discusses, can be problematic, e.g. some places might not be happy with codes that have EVIL in them).
>Maybe there's a way to do that, but I haven't found it yet.
The spec[1] is open, and it's all in there!
It is not as simple as what you expected, due to the design constraint above. But that is a tradeoff that I think is reasonable. After all, these addresses are going to be punched into a computer anyway.
E.g. play with the addresses here[2].
I'm really excited to see more development in this space, because one size does not fit all. However, it's important to know what existing systems get right too.
(E.g.: English W3W looks like way easier to say on the phone).
Disclaimer: I work for Google/Geo, the opinions expressed here are mine, and not of my employer.
[1]https://github.com/google/open-location-code/blob/master/doc...
Or I could just use a system that doesn't have that drawback. Plus codes aren't awful. I just find room for improvement.
> This is by design; some symbols were omitted to avoid having words in codes (which, as TFA discusses, can be problematic, e.g. some places might not be happy with codes that have EVIL in them).
So what you're saying is only an open source project could deal with this level of potential offense. I'll agree with that. People who don't like EVIL could add more precision to make EVILGH.
Which drawback? All systems have the drawback that if you don't say the entire address, you don't get the entire address.
>So what you're saying is only an open source..
I was not talking about that (for that matter, plus codes are free/open source). I was just explaining why you ran into this problem: "4CFM+JX works, but 4CFM+JY?". It wasn't obvious to me why "Y" is not a valid plus-code character either until I read the spec.
Honest opinion: it is not. Plus codes is the one that has least drawbacks and most advantages.
But seriously, you haven't seen it yet. Ever read Green Eggs and Ham?
> With pencil and paper, you'll be able to figure out how to go N, E, S, W by X distance by adjusting a particular character.
Topologically speaking, I am intrigued :)
I at the time found some prices online searching around but nothing from them.
We were very hopeful we'd get some sort of discount because we're in educational tech, so our income per user is very low, but nope. Free to $100k overnight is insane. We’ve got a guy whose full time job now is basically developing analytics tools for us and it’s a cheaper solution.
The main catch is that GA goes to "sampling mode" once your traffic gets high enough, and I think you have to pay extra to get full datasets.
If you see a high pricing on their webpage you might go away immediately. But if you make the effort to calling them, you are already committing yourself and you are more likely to accept a higher price than you would have if it was easily accessible.
Look, even this dinosaur got it right: https://azure.microsoft.com/en-us/pricing/details/api-manage...
I believe as a consumer it is important to be aware of those different manipulation techniques so you can step back and take a rational decision.
For example in case of call for sale, it should trigger an alarm telling you to walk away. If you have a high interest in the product and want to call anyway, make sure to know what price you are willing to pay BEFORE calling and do not commit to anything during the call.
- You are WAY underestimating modern Microsoft, they may be a dinosaur in that they are a relatively old company but they are definitely still one of the bigger predators around.
- Not every business has the same target audience. Some companies desire "everyone" and will make the barrier as low as possible; some companies will purposely target only those customers with the money and commitment to call a sales team and will not make the effort to support customers who are not worth the attention.
"12 character code" might solve the problem from your perspective, but the point is that barcodes and IDs are annoying to read and copy by hand.
•Length-optimized. More digits = more precision, check.
•Precision optimized. Except for adding zeros, check.
•Precision-focused. Sig figs cover this.
•Logic-optimized. Adding or subtracting to lat or long respectively.
•Spheroid-optimized. I believe this applies to latitude and longitude, as well, since there's less surface area for a given coordinate space. Though, maybe it's the reverse, that it's more precise at the poles.
This is a service-related question, though, not a method-related question. There's no math equation that'll tell you your house is there when it used to be here.
"No, I'm `heartfelt-triple-coma` from 2003, not current. Oh, you're using a Spanish-language phone; I don't know which dataset you use."
GPS coordinates are just one possible solution, there's no reason to consider equivalent encodings of the same values as the only alternatives.
Sure, but (1) is there a good way to get an exact description of tectonic drift?, And (2) does tectonic drift account for all shifts of surface features (intuitively, it would not necessarily for features not fixed to bedrock, which accounts for a very large share of interesting-to-humans features)?
Of course, getting all software to support multiple datums might be a complicated matter, as 98% of things like online slippy maps and mobile phone geolocation APIs just use WGS84, the familiar datum used by GPS.
[1] https://en.wikipedia.org/wiki/European_Terrestrial_Reference... [2] https://en.wikipedia.org/wiki/North_American_Datum
(2) Changes on a smaller scale, e.g. due to a landslide, are probably less surprising when they cause a change in location codes. On the other hand, there might be some houses on a hill somewhere slowly sliding down, where the system doesn't work.
(I also realized that my previous comment can be read as supporting a flat earth theory, especially the part about the sphere being imaginary. I firmly believe that the earth is a bumpy ellipsoid, though.)
I would think you'd need a lot of targets near plate boundaries (where deformation is high for that reason) as well as in known regions of intraplate deformation.
Google is not exempt from this type of behavior, unfortunately.
See also:
https://en.wikipedia.org/wiki/List_of_geocoding_systems
https://en.wikipedia.org/wiki/Military_Grid_Reference_System...
The thing you are trying to design has probably already been designed.
We are currently using geohash and curious why it’s worse than this.
Worse might be a little harsh, but my system:
•Packs slightly more bits into the string (naturally there's a tradeoff with data fidelity) for shorter strings
•Follows a completely logical alphanumeric distribution (Geohash will skip letters, some for good reason, like o and l, and some for not-so-much, like a)
•Some of the other benefits in the original post are also missing.
You could probably do this with other systems, but the goal is to allow everyday people to be able to pack a short string in a tweet and have everybody else know exactly where they mean.
89c25855b9b
That's the S2 string for a section of Times Square, NY.
Usefully "89c25855b" is a well-defined, less precise location comprising a larger area. You can go up or down in levels of precision easily and everything can be stored as a single 64-bit integer with lots of extremely useful properties, (e.g. the use of the Hillbert Curve with all of it's benefits, like localization in address space and real space - see http://blog.christianperone.com/2015/08/googles-s2-geometry-...)
If your system adds more benefits than this, I'd love to hear more about it!
Also, geohashes of many proximal points are very different (see http://geohash.org/f840p2n2p3 and http://geohash.org/dxfpzryrzq although these locations are 1 meter apart)
Also, while geohashes are great for computer storage, they are not so much for human memory.
The fact is the 4 coordinates (two numeric, two with the stupid "N/S/E/W" corresponding with traditional), decimal points, and reverse order from an X,Y coordinate system, are hardly easy to memorize. They're next to impossible to memorize.
What part of pencil and paper didn't come across?
I think "IJASDO" would be way easier to memorize than person.guards.gangs (I will definitely give W3W credit for picking unintentioned yet humorous word combos), particularly if English wasn't my first language.
If you disagree with this logic, explain to me why automobiles' license plates should use W3W-style. ("idiot-driver-honk").
Wait, was that first one persons.guards.gangs? persons.guard.gangs? You'd think if you were one off in the dictionary it would still get you where you needed to go, but no.
W3W is a clever product. Mine is also clever, and this industry will never have one-size-fits-all, and that's ok.
W3W has a not-so-clever marketing approach. I doubt plus.codes would have ever seen the light of day if W3W had a more FAANG-style approach to marketing.
Completely disagree. No way 6 arbitrary letters is easier to remember than 3 arbitrary words.
I'm preparing my own version, truly open source (though with a premium component), with the following improvements over W3W:
•Length-optimized. If one character sufficiently describes your location, you don't need to tack on extras. A 12-character code with the last two lopped off will be imperceptibly close to the original.
•Precision optimized. Every additional character, no matter the value, will result in a location not identical to the absence of that character.
•Precision-focused. When a location is precise to the nearest 100km, km, m, or µm, the browser tools make that clear.
•Logic-optimized. With pencil and paper, you'll be able to figure out how to go N, E, S, W by X distance by adjusting a particular character.
•Spheroid-optimized. The Mercator projection is often held to be an imperialist distortion of the globe, and that's what traditional latitudes and longitudes use. Half the "namespace" of nearly every coordinate system is biased toward the poles. The distance between 89° N, 10°W, and 89°N, 10°E is 38km, but at 1°N, it's 2226km. My system has a simple and clever way to equally represent the dense equatorial regions and the sparse arctic and antarctic regions, and that equals shorter codes.
Watch this space.