<story><title>H3: Uber’s Hexagonal Hierarchical Spatial Index (2018)</title><url>https://eng.uber.com/h3/#hco</url></story><parent_chain></parent_chain><comment><author>jillesvangurp</author><text>I did some indexing using elasticsearch and some home grown stuff based on geohashes about seven years ago. At the time Elasticsearch was just adding support for geoshape indexing as well. Initially this was also based on geohashes. Later they added proper quad tree support (instead of indexing the geohash as a term), and recently they revamped the implementation using BKD trees. The current implementation is way faster and scalable than what they had a few years back and allegedly quite nice for handling complex GIS data.&lt;p&gt;What&amp;#x27;s the advantage of Uber&amp;#x27;s approach over any of this. Even my primitive geohash solution worked pretty nicely and you can implement it on just about any type of DB. I had a simple algorithm to cover any shape with geohashes of a certain size as well as a quick way to generate a polygon for a circle. The two combined allowed me to do radius searches for any shape overlapping or contained by the circle with simple terms queries on the geohash prefixes. My main headache was keeping the number of terms in a query (i.e. number of geohashes) to a reasonable size (below 1024, which if I recall was a the default limit).</text></comment>
<story><title>H3: Uber’s Hexagonal Hierarchical Spatial Index (2018)</title><url>https://eng.uber.com/h3/#hco</url></story><parent_chain></parent_chain><comment><author>Cactus2018</author><text>Previously &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=16135302&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;news.ycombinator.com&amp;#x2F;item?id=16135302&lt;/a&gt;</text></comment>