Tech
[跑步] [分享创造] 我用 Uber H3 做了一个跑步版「地图涂色」:跑过一格,点亮一城
[分享创造] 我用 Uber H3 做了一个跑步版「地图涂色」:跑过一格,点亮一城
大家好,我最近给自己开发的「 快乐跑团 」小程序做了一个新功能: 城市点亮计划 。
它有点像现实世界里的地图涂色:
跑友可以在地图上圈定一片公园、街区或江边路线,创建一个限时挑战。参与者实际跑到某个区域后,就能点亮对应的六边形网格,最后按照点亮数量进行排行。
一句话概括就是:
跑过一格,点亮一城。
为什么选择 H3 ?
这个功能使用了 Uber 开源的地理空间索引库 H3 ,项目中对应的 JavaScript 依赖是 h3-js 。
H3 可以把地球表面划分成不同精度的六边形网格。获取定位后,不需要自己编写复杂的“点是否落在多边形内”判断,只需把经纬度转换成 H3 Cell ID ,就能确定用户当前进入了哪一格。
这套模型很适合跑步探索场景:
每个网格都有稳定、唯一的 Cell ID ;
可以根据活动范围选择不同的网格精度;
相邻网格关系清晰,方便继续扩展路线与区域玩法;
客户端可以根据 Cell ID 还原六边形边界...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX