Uber H3算法封装成JAR包以及常用API调用

由于H3的库都是用C语言写的,如果想用Java代码测试,github已经有现成的H3-Java库,与H3的C库绑定好了

地址:https://github.com/uber/h3-java

比如测试代码需要调用现成H3-Java里封装好的方法,最直接的方法将h3-java打一个JAR包,具体执行 

cd h3-java
mvn package

打包的时候,会在h3-java/target目录下[……]

Read more

H3:经纬度和H3索引之间的转换

h3lib使用C语言写的,因此如果要用到库函数,必须得链接一下,大致用到了geoToH3,h3ToGeo和h3ToGeoBoundary三个函数,功能分别为:

geoToH3:经纬度转换成H3索引

h3ToGeo:根据H3索引输出对应六边形格子的中心位置经纬度

h3ToGeoBoundary:根据索引输出对应六边形格子的六个顶点位置经纬度

先看一个简单的例子

这里我传入的经纬度是滨江星光大道[……]

Read more

H3:空间索引精度

以Uber打车服务举一个例子,比如有乘客需要打车,调度系统默认会给乘客筛选附近4KM的司机,然后可能会经过一系列的过滤条件,筛选出最合适的一个司机去为乘客服务,要注意的是这里的最合适并不是最近,因为也许最近的一个司机并非空载,或者乘客是一个VIP,而最近的司机并非是服务VIP客户的等等

如下图

虽然说最合适不等于最近,但司机空载寻找乘客,考虑成本不可能调度一个最远的司机过来,因此对于调度筛选的过[……]

Read more