uber H3

https://github.com/xiazemin/h3-go
https://uber.github.io/h3/#/documentation/overview/introduction
https://uber.github.io/h3/#/documentation/core-library/coordinate-systems
https://halfrost.com/go_spatial_search/
https://github.com/vraid/earthgen-old
https://gist.github.com/jp1017/71bd0976287ce163c11a7cb963b04dd8



https://uber.github.io/h3/#/documentation/core-library/overview





The H3 geospatial indexing system is a multi-precision hexagonal tiling of the sphere indexed with hierarchical linear indexes. The H3 Core Library provides functions for converting between latitude/longitude coordinates and H3 geospatial indexes. Specifically, the major library entry point functions (defined in h3api.h) provide the functionality:




given a latitude/longitude point, find the index of the containing H3 cell at a particular resolution
given an H3 index, find the latitude/longitude cell center
given an H3 index, determine the cell boundary in latitude/longitude coordinates
and more.
The H3 Core Library is written entirely in C. Bindings for other languages are available.

许多游戏使用六角形。其中一个主要优点是任何瓦片的中心与其所有相邻瓦片之间的距离是相同的。



在常用的地理范围查询中,基于矩形的查询方法,存在8邻域到中心网格的距离不相等的问题,也就是说六边形网格与周围网格的距离有且仅有一个,而四边形存在两类距离,三角形有三类距离:



六边形的周围邻居到中心网格的距离却是相等的,从形状上来说更加接近于圆形。而且六边形也是边数最多的无缝多边形。



所以,基于hexagon的地理单元已经成为各大厂家的首选,比如 Uber 和 Didi 的峰时定价服务。



这种这种背景下,六边形的应用也来越广,比如ArcGIS Desktop在10.3之后,专门内置生成蜂窝多边形的工具:



ArcGIS中生成蜂窝多边形生成算法解析



而如果想要在比如Spark中实现蜂窝多边形聚合,怎么办呢?Uber开源了他的蜂窝多边形算法H3,让我们能够非常轻松的完成这个任务:



具体算法和论文的地址: https://eng.uber.com/h3/



包是用C写的



python包的地址:



https://pypi.org/project/h3/



H3的github地址,更多内容大家可以自行查阅



https://uber.github.io/h3/#/



https://github.com/allenlu2008/PythonDemo



https://www.jianshu.com/p/e42d903dce38


Category algorithm