
我将向您介绍“事故地图”项目-俄罗斯的交互式事故地图。 该地图简化了事故分析,并有助于查找事故的真正原因。 这个想法是如何产生的,他们在哪里获取数据,以及为什么要打开源代码。
2018年,有19088人在俄罗斯道路交通事故中丧生
这个数字每年都在下降,但仍然比发达国家要大得多,在发达国家,人们更加关注道路上的死亡率问题。 瑞典道路安全计划“零愿景”就是一个很好的例子。
该计划的基本原则是不允许发生致命事故。 该原则也称为“零容忍”原则,根据该原则,不可能将道路上的死亡视为与机动化相关的不可避免的罪恶。 - 维基百科去年,伊利亚·瓦拉莫夫(Ilya Varlamov)和马克西姆·卡茨(Maxim Katz)城市项目基金会在莫斯科发起了“
零死亡”运动。 这个想法是,原则上任何人都不应死于事故。 如果人们死亡,那不是受害者的错,而主要是设计师,建筑商或城市。 有必要了解每个事故,找到系统原因并逐步消除它们。 到目前为止,市政府还没有认真做到这一点。
因此,去年夏天,与城市活动家和莫斯科市代表一起,让我们感到困惑的是创建了一个工具,该工具可以使我们对事故进行详细的空间分析:找到危险的十字路口,研究街道和城市的当地统计数据,并确定事故的主要因素和原因。 当时,还没有这样一个公开可用的项目。
公开事故数据
我们很幸运拥有开放数据。 哈伯(Habr)上已经写了与他们合作的
好帖子 。 这种关注是完全有道理的-这是该州目前公开的最详细,最有趣的数据之一。 坐标,天气,汽车制造年份和年份,违反规定,参与者的性别等等。 而这超过60万起事故中的每一个。
在这种情况下,我们担心
stat.gibdd.ru服务
本身 。 尽管引擎盖下有详细的数据,但不同之处在于使用起来非常不便。 它看起来更像是一个供官员使用的站点:与APPG(去年同期)的比较,仅针对管理部门的详细信息,事故显示在列表中。

这样的界面和功能根本不适合人们,而是为官方报告创建的。
门户创建
真正遇到这些问题的人们(代表,激进主义者,城市主义者)在制定职权范围方面发挥了重要作用。 多亏了他们,我才得以真正了解自己的需求。 我们商定了3万卢布的小额启动预算,并开始这样做。
我从交通警察门户网站上编写了一个简单的区域和事故解析器,就开始使用数据。 我们坚持使用他们的API,该API将数据提供给服务本身,然后将数据卸载给我们自己。 正如我上面所写的,中心上有关于此主题的文章,我们的解析器的源代码可以在
存储库中找到。
主要问题是地理编码,因为许多事故的坐标都不正确。 坐标与地址有很大不同。 例如,在马哈奇卡拉(Makhachkala),道路交通事故中有90%通常在城市外,而在巴尔瑙尔(Barnaul),事故的一部分直接发生在森林中。

最初,我们使用Yandex.Geocoder,但由于其局限性和拒绝共享服务(即使是非营利性项目),我们也不得不寻找其他解决方案。 因此,我们将任务设置为社交项目PublicData的黑客马拉松,在那里,他们做出了自定义决定,不仅找到最近的地址,而且找到最近的道路。

伙计们将地址作为优先级坐标,如果地理位置距离协议超过300米,则算法将不考虑该地址。 算法是我们获取建筑物的地理位置并将其投影到道路上,我们对协议中的地理位置进行了相同的处理。 在两个结果点之间绘制一个线段。 这部分的中间将是我们需要的重点。
接下来,我们使用了postgresql + django + djangorestframework堆栈。 数据是分层的,因此我们必须为计划过滤器的那些值创建其他表。
在前端,我们计划了一个包含过滤器和自动计算的统计信息的交互式地图。 主要任务是确保地图不挂有太多物体(在莫斯科,该物体超过3万)。 结果是一个带有传单的ReactJS应用程序。 它会一次从API加载某个区域或城市的所有事故,但只会在地图上显示落在屏幕上的那些事故。 这使得开始页面的加载时间很长,但是提供了快速的筛选和重新计数统计信息,并且不允许地图放慢速度。 此外,不久后,我们添加了一个热层,该层在一定规模下被激活,并且发生了太多事故。 最初,我们只有一张莫斯科地图。
在第一阶段,我们拒绝使用移动版本,因为要在其中放置主要功能很困难,并且使用地图的关键用户故事需要沉浸式分析,而不是人们在旅途中要做的事情。
我们根据过滤器的重要性进行选择,以进行分析:事故类型,日期,街道,交通违章,周围基础设施。

我们还大大简化了事故卡,并借助颜色,图标,全景图对其进行了改进。

结果
在六个月的时间里,有
3万多人参观了该项目,他们浏览了该网站约10万次。 现在,该地图正在与该地区的活动人士一起制定,他们以所在城市和地区的地图为例谈论事故问题。 他们与区域媒体进行交流,并在其博客上谈论该问题:
“道路事故地图”上的基洛夫。 发生交通事故最多的城市前7条街道 ,
弗拉基米尔(Vladimir)在人们的道路交通事故地图上 ,
“必须以人身安全为导向”:在下诺夫哥罗德地区创建了道路交通事故地图 。
我们还会收到有关该项目的个人反馈。 例如,城市项目基金会(Urban Projects Foundation)积极使用我们的门户网站对危险路口进行研究。 在基洛夫城市论坛上,提到我们的项目是修改城市政策的论据。 我们很高兴我们至少能够影响这个问题。
源代码
如果您访问了该项目的网站,您应该已经注意到该项目仍然存在许多问题,其中包括:
- 并非所有地区都添加
- 没有手机版本
- 您不能共享特定站点/无法统计特定站点的统计信息
为了让更多人参与该项目,我们打开了
该项目的
源代码 。 其中包含有关如何启动项目,如何下载数据和任务,解决对项目有帮助的说明。
在不久的将来,我们将修复一些小错误并完成项目。
当前在地图上:莫斯科,圣彼得堡,喀山,下诺夫哥罗德,克拉斯诺达尔,雅罗斯拉夫尔,基洛夫,弗拉基米尔,切博克萨雷及其地区。
如果该项目有助于挽救这2万人中的至少一条生命,那么这一切都是徒劳的。 您还将有机会挽救数条生命。 如果您:
感谢参与该项目创建的每个人,特别是感谢Alexei Radchenko,Anastasia Romashkevich,Anton Chernykh c13 ,Alexander Popovtsev,Anna Kirichenko,Konstantin Nabatchikov,Vladislav Prud,Maxim Nikityuk。