一.如果有一批数据,知道某个主键比如ip地址、人的身份证、车牌、订单以及经纬度信息
那可以做出哪些事情?
1.某个ip对应的经纬度在哪个地区?
1.某个人出现的经纬度,根据人与经纬度关系,形成出行轨迹
3.某车牌或者车架对应的经纬度信息,车辆轨迹,借助地图做出,可以做交通数据应用
4.某个地区的订单信息
5.根据经纬度,一些十字路口或者地铁口附件乘车人比较多,来做出一些虚拟车站,就像打车软件上面绿色
二、虚拟车站的业务难点
1.找出人们出行打车的所有小区域
2.筛选出打车人数、订单数比较多的区域,不能说历史数据中某个区域内只有一个订单就作为虚拟车站,约定一个阈值
3.根据这些区域内订单的经纬度的精度,那个精度最小选择哪个经纬度作为虚拟车站
三、使用uber-h3实现地图上小区域划分
uber h3算法介绍
H3,是一个六边形分层索引网格系统,也是最近几年实现数据聚合的主要趋势,在h3出现之前大部分情况采用的是geohash算法,墨卡托投影,还有一些其他投影技术,比如google s2.地理索引
六边形网格与周围网格的距离有且仅有一个,而四边形存在两类距离,三角形有三类距离3.1 h3的特点
1.将数据划分为六边形网格
H3有一个简单的API,可将坐标索引到六角形的全局网格中。
2.分层网格系统
容易按位截断粗略的近似单元,以及区域压缩/解压缩算法。
3.全面全球化
连同十二个五边形,整个世界都可以在H3中寻址,分辨率可达平方米
3.2 分辨率
精度说明:0-15个精度级别,六边形区域要为9m 那就是选择精度12-----》对应的格子边长为0.00941km=9.4m
4.六边形区域的定义
1.南京市六边形样例:
2、定义每个六边形为10米左右,如果两个经纬度的距离在10米之内,就在这个区域,他们的进行h3算法返回的索引值就是想等的
三、测试两个经纬度是否在想要的区域内
测试 19.714932,110.563756与19.714986,110.563684 两个点是否在同一个区域
测试 19.715584,110.563654与19.715617,110.563743两个点是否在同一个区域

测试结果:第一组不在精度为12(六边形边长为9.4米)的区域内,第二组在精度为12的区域内。