园区公交运营数据三维可视化初探

一、背景

    由于在2016年全程参与了园区公交三期项目,其中一个子系统为“公交客流采集与分析”,即通过乘客刷卡投币数据、公交车辆轨迹数据及公交排班运营等数据,分析出乘客OD数据、线路客流数据及站点客流数据等。因而积累了一些公交原始数据和分析数据。

    加之之前看到过一个有趣的project,将旧金山的出租车轨迹数据结合建筑、水系数据,用三维的方式表现出来。受之启发,于2017年初开发了这个“园区公交运营数据三维可视化”系统。


公交运营三维可视化

二、数据

基础数据:

    园区建筑数据

    园区水系数据

公交专题数据:

    园区公交路线数据

    园区公交站点数据

    园区公交车一天的GPS轨迹数据

    园区公交一天的客流数据

三、功能

运营轨迹

    将每一辆公交车辆的GPS点按时间序列连接成线,依次绘制到三维场景中,呈现全部50条线路、700余辆公交车的全天运营轨迹。

    由于公交线路覆盖密度的不一致,表现到场景中便会出现颜色的明暗差异,如主干路上的轨迹线比支路会更“亮”一些。

左侧面板中提取了行驶里程前五的线路和车辆,点击可以在地图中红色高亮查看。

站点客流

    以站点为单元,从分时段客流、累计客流两个维度,配合时间轴来还原全天客流变化情况、总量高低分布。

分时客流
累计客流

站点OD

    选择某一站点作为O,显示其关联的所有到达站点(D)。通过颜色的差异代表客流量的大小。

天气模拟

    为了获得更真实的场景环境体验,引入粒子系统来模拟雨、雪等天气效果。

四、技术点

三维渲染及动画库

three.js:一个JavaScript 3D库,封装了底层的WebGL图形接口,提供简化、高效的三维图形程序开发。

tween.js:一款可生成平滑动画效果的JS动画库,易于和threejs结合。

建筑数据抽稀

    全园区接近35000幢建筑,为减轻数据传输压力,在保证数据特征的前提下,对其进行简化抽稀。


水系数据三角网剖分

    因水系涉及复杂多边形(环、洞),无法直接使用THREE.SHAPE函数将geojson转换成geometry。采用德劳内三角剖分算法自己构建三角网,再构造geometry。



五、TODO

1. 考虑通过websocket从后端推送实时数据并显示,如车辆gps数据、客流数据、天气数据等

2. 丰富基础地理数据,如绿地、交通标识等

3. 叠加瓦片地图,如openstreetmap作为底图

4. 欢迎补充建议

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 SODA是什么## SODA(Shanghai Open Data Apps,上海开放数据创新应用大赛)是由上...
    宏伦工作室阅读 4,726评论 2 3
  • 挑战十一假期7天-每天一本书(目标11/100本) 收拾行李+使用出行清单 继续阅读《穷查理宝典》80% 挑战十一...
    伽蓝214阅读 695评论 0 0
  • 以前不喜欢在身上戴饰品 结婚时买了这么个小东西 后来发现它并不妨碍我的生活 就不摘下来了 锤子科技李剑叶的作品
    Jeszny阅读 1,599评论 0 0
  • 这几天在重复:早起—去医院—早起—去医院。早起的时候老公已经做好了一桌早饭,可是,我只喝了一碗粥。坐着小龟八点半就...
    7b60ab54743d阅读 1,391评论 0 1
  • 昨夜,我做了一个梦 梦中,我和你相遇在那个街角 你微笑着挥挥手 对我说,好久不见 我亦说,好久不见 这感觉,是多么...
    水至善阅读 2,767评论 0 2