一、什么是H3?
将地球空间划分成可是识别的单元。将经纬度H3编码成六边形的网格索引。
二、为什么用H3?
2.1 GEOHASH存在一些不足
不同精度下网格的形状不一且精度的变化幅度时小时大在不同维度的地区会出现地理单元单位面积差异较大的情况存在8邻域到中心网格的距离不相等问题
2.2 H3的映射原理简述
基于正多边形内角和公式(
θ
=
(
x
−
2
)
∗
180
\theta=(x-2)*180
θ=(x−2)∗180 ), 和顶点和为360计算出,
360
y
=
(
x
−
2
)
∗
180
x
\frac{360}{y} = \frac{(x-2)*180}{x}
y360=x(x−2)∗180 ,所有y(正多边形个数), x的组合 六边形因为边数最多,最接近圆,所以理论上来说在某些场景下是最优的选择。H3干脆摒弃传统的地图投影,直接在地球上铺满六边形。采用多层网格映射
三、H3的主要应用是什么?
优化乘车价格和调度(动态定价)地图空间数据可视化和挖掘用于整个市场的分析和优化
四、Uber H3实战: 英国交通事故点聚类
脚本在notebook里运行即可
import numpy as np
import pandas as pd
import folium
from h3 import h3
from sklearn.cluster import DBSCAN
from folium.plugins import HeatMap
def creat_map(cluster):
map_fig = folium.Map(zoom_start=12)
def color_choose(cnt):
color_list = ['#FFC1C1', '#EEB4B4', '#FF6A6A', '#EE6363', '#CD5555', '#8B3A3A']
if cnt |