一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
Offer多多
Salarytics
交友
Learn
Who's Hiring?
Visa Tracker
疫情动态
指尖新闻
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 524|回复: 4
收起左侧

[题目讨论] 公路路段速度系统

[复制链接] |只看干货 |系统设计
我的人缘0

分享帖子到朋友圈
14417335 | 显示全部楼层 |阅读模式
本楼: 👍   100% (2)
 
 
0% (0)   👎
全局: 👍   99% (530)
 
 
0% (4)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
现在某号公路某段某方向的堵不堵,是每个上路司机都想知道的问题。如果我来设计一个这样的系统




信号的来源应该使用手机程序。给予手机机主一些好处作为奖励,一定比硬件装到车上面成本更低。
手机程序应该每10秒中采一次样。采GEO的信息(我只知道纬度和经度,懂行的人可以说说)。
这样手机程序里就有了10秒前和10秒后的信息。很快可以算出这个机主的速度。
静止速度为0的情况一般有两种,最主要的一种是机主在办公室。另一种是park车休息例如的士司机。
如果调用server的api,可以知道server是否感兴趣我当前的位置。这样我们的server方必须提供一个api,input是longitude和latitude的时候,返回true/false。
如果sever方返回的是false,则不要再往server送地点。除非速度超过10mph后就应该不停地报告地点。速度变成0mp就要调用server的api,(高速上和普通路红绿灯有完全停车的情况)

另一种思路是不管怎样,submit就是。server方会filter off不感兴趣的submission。(说实在这点需要domain knowledge,判断一个geolocation是否在我们这个系统所监控的高速和普通公路上,如果很便宜就应该采用这个思路,省却了一个server的api)

给server送达的信息应该包括如下:
  • 用户的id (这样和奖励挂钩)
  • 10秒前的geo location,和当前的geo location(一对)
  • 如果手机信号不行,最多保留最后5分钟(50个location对)
  • 手机的绝对时间不重要,关键是相对时间。


到server方后,应该根据geo location(这点不知道是否可行)和地图来判断所在的公路和方向(向东还是向西),这样就知道了一个关于某号公路某段某方向的速度的一个sample。
按照路段来sharding的话,通过软件load balancing把这个sample送到相应路段的kafka里
处理kafka里的samples的service可以刨除极端的数据,然后计算5分钟window的平均值,送给显示方。
每个用户的有效sample的submission记录,并且最后写入关系型数据库。

这样这个系统就可以显示5分钟某段某方向的道路的平均速度。如果没有数据则可以不显示或者采用同天同时间段的平均平均值来提出估计数据。

评分

参与人数 1大米 +3 收起 理由
鹿鹿鹿鹿鹿鹿鹿 + 3 很有用的信息!

查看全部评分

我的人缘0

升级   0.5%

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (23)
 
 
0% (0)    👎
1:为什么需要手机记录历史位置?既然手机已经发过之前位置了,服务器端应该已经有了,而且应该是序列。近期的可以放在缓存里。
2:假设使用app的人足够多,应该可以根据geo和周围其他人的位置信息综合出来是不是停车还是堵车。如果位置是商城里,肯定不能用。或者其他人在这条线上都是快速飞奔。
3:可以根据数据量采用适当geohash level来分片计算以及缓存。
4:还可以同时使用其他数据源来做比对,综合
回复

使用道具 举报

我的人缘0
 楼主| 14417335 2019-3-22 21:05:20 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   99% (530)
 
 
0% (4)    👎
prqsprqs 发表于 2019-3-22 20:30
1:为什么需要手机记录历史位置?既然手机已经发过之前位置了,服务器端应该已经有了,而且应该是序列。近 ...

  • 手机会有掉线的情况,data用量高被暂时关掉。所以手机无法发送的时间段是存在的。
  • 是可以综合同一路段的情况,我在楼顶提到了“刨除极端的数据”,和“平均值”。
  • 如何判断用户在某公路上,是一个我没想好的点。用GEOHASH我不知道是不是更好仍然需要判断一个点所在的路段,而用GEOHASH能省多少我不确定。如有细节,还请详述。

回复

使用道具 举报

我的人缘0

升级   0.5%

prqsprqs 2019-3-23 12:05:09 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (23)
 
 
0% (0)    👎
14417335 发表于 2019-3-22 21:05
  • 手机会有掉线的情况,data用量高被暂时关掉。所以手机无法发送的时间段是存在的。
  • 是可以综合同 ...

  • 我还是觉得没必要手机记录之前的位置。
    就跟手机关掉GPS,再恢复GPS,之前的位置也一样没用。
    服务端存的序列有时间戳。比如说新收到的位置和前一个位置时间差超过1分钟,可以认为之前掉线了,那这个数据就作为新序列的开始,但是不作为计算参数,等10秒后再发送位置时候,就可以使用了。
    回复

    使用道具 举报

    我的人缘0
     楼主| 14417335 2019-3-23 19:50:05 | 显示全部楼层
    本楼: 👍   0% (0)
     
     
    0% (0)   👎
    全局: 👍   99% (530)
     
     
    0% (4)    👎
    prqsprqs 发表于 2019-3-23 12:05
    我还是觉得没必要手机记录之前的位置。
    就跟手机关掉GPS,再恢复GPS,之前的位置也一样没用。
    服务端存 ...

    嗯。楼顶也提到了不必记录所有手机的信号。只存最后的一段。“保留最后5分钟(50个location对)”。具体多少才有价值可以不同情况讨论。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册账号

    本版积分规则

    隐私提醒:
    ■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
    ■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
    ■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

    手机版|||一亩三分地

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc. Design By HUXTeam

    Some icons made by Freepik from flaticon.com

    快速回复 返回顶部 返回列表