文档章节

技术教程| 百度鹰眼历史轨迹查询:轨迹抽稀功能

百度开发者中心
 百度开发者中心
发布于 07/13 18:34
字数 1543
阅读 102
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

本文作者:用****9

本篇教程中,我们将详细地说明鹰眼历史轨迹查询(gettrack接口)中,如何通过vacuate_grade选项对轨迹进行抽稀,以及不同的抽稀力度对轨迹产生的影响。

 

上一篇教程中,我们介绍了鹰眼历史轨迹查询(gettrack接口)中process_option纠偏字段中的need_mapmatch选项开启之后,通过对轨迹点的绑路,使轨迹更平滑、更准确地还原出车辆真实的行驶路线。同时我们也注意到,绑路会增加很多道路的“形状点”作为补充。这些补充出来的点在“多多益善”的角度上看,应该是好事,轨迹点越多,对车辆行驶路线的还原越“精细”,对转弯、掉头等轨迹细节的刻画也更“准确”。然而过多的轨迹点,也会带来负担:网络传输的带宽异常珍贵,在某些对于精度要求不高的场合,过多的轨迹点对于稀缺的带宽资源来说,反而是一种浪费;前端在轨迹的绘制时,点越多绘制的开销也越大,在某些对绘制性能和出图速度要求较高的场景下,过多的轨迹点也显得“过犹不及”。

 

和纠偏选项类似,抽稀也可以指定不同的级别。抽稀力度由process_option字段中的vacuate_grade选项指定。

vacuate_grade=0时,代表不进行抽稀操作,vacuate_grade的值从1到5,抽稀的力度越来越大。也就是说vacuate_grade=1时,会对轨迹进行抽稀,这种抽稀力度最为保守,只会删除尽可能少的点;而vacuate_grade=5时,抽稀的力度最为激进,将会删除尽可能多的点,只保留最少量的轨迹点。

下面我们仍然以前两节教程中的那条轨迹为例,详细地演示一下,不同的抽稀力度对该轨迹的效果产生的影响,在此之前,在表1中,列出了各种抽稀力度下,保留的轨迹点个数,意图先从数字的角度给大家一个整体的印象,之后再分别演示每种抽稀力度的详细效果。

 

vacuate_grade=0

不进行抽稀的情况,如图1所示:

图1(不经过抽稀的轨迹)

我们看出,在没有经过抽稀的情况下,该段轨迹共有777个轨迹点。冗余是比较严重的。

vacuate_grade=1

  图2中展示了vacuate_grade=1时,对整条轨迹的抽稀效果。轨迹点从777个骤降到36个,且比较好地保留了轨迹的原貌。

图2(vacuate_grade=1时的轨迹整体图)

 

抽稀后的轨迹放大后(图3),可以看到在转弯和掉头等关键位置处的轨迹点,也很好地得到了保留,可以准确地还原车辆行驶路线的原貌。

 

图3(vacuate_grade=1时的轨迹局部放大图)

 

vacuate_grade=2

图4中展示了vacuate_grade=2时,对整条轨迹的抽稀效果。轨迹点从36个进一步缩减到27个。

 

图4(vacuate_grade=2时的轨迹整体图)

 

对于力度1和力度2的区别,我们找到整体图的右下角进行放大,详细对比:

 

 

通过图5和图6的对比,我们发现,抽稀力度为2时,相比力度1的抽稀幅度很有限,在尽可能保留轨迹原貌的情况下,竭尽全力做了进一步的精简。在绝大多数情况下,vacuate_grade=2已经是在不影响轨迹还原效果情况下的最强力度了,下文中我们可以看出,更大的轨迹力度将开始引起轨迹的准确性。所以vacuate_grade=2是鹰眼抽稀的默认力度。

 

vacuate_grade=3

图7展示了在vacuate_grade=3的力度下,对轨迹的抽稀效果。轨迹点数由27进一步缩减到了16。

 

图7(vacuate_grade=3时的轨迹整体图)

 

需要注意的是,虽然从整体图上看效果尚可,但局部放大后,我们将会发现,vacuate_grade=3的力度下,转弯和掉头的细节已经所剩无几,开始影响对原始轨迹的刻画了:

 

图8(vacuate_grade=3时的轨迹局部放大图)

 

vacuate_grade=4

图9展示了vacuate_grade=4的抽稀力度下的轨迹,细节进一步缺失,因此我们不再展示局部细节图了。除非该轨迹的目的是为了展示缩略图,否则不推荐这个抽稀力度。

 

图9(vacuate_grade=4时的轨迹整体图)

 

vacuate_grade=5

图10展示了抽稀力度为5的情况下,轨迹的整体图,可以看出这个力度已经丧心病狂到了连缩略图的效果都不能满足的地步。

 

图10(vacuate_grade=5时的轨迹整体图)

 

总结

通过上文略显繁琐的演示,我们对不同抽稀力度下对轨迹的影响有了一个较为全面的了解。最后我们给出一些建议:

 

绝大多数情况下,使用vacuate_grade=1或2就可以保证很好的效果,如果你希望比较准确地还原车辆行驶的原貌,并在放大后的局部也能保存轨迹中的关键细节,那么你应当只在1和2这两个力度中选择,由于力度1下已经大幅减少了轨迹点的数量,一般情况下设置vacuate_grade=1即可,如果你要查询很多量车的历史轨迹,或者对网络带宽的成本非常敏感,那么设置vacuate_grade=2也有不错的效果,是最高性价比的选择,因此也作为鹰眼抽稀的默认级别。

 

如果查询轨迹是为了绘制缩略图,那么设置vacuate_grade=3或4是个明智的选择,一般选择3就可以。在各种常见的场景下都不推荐vacuate_grade=5这种力度的抽稀。

 

原文链接地址:https://developer.baidu.com/topic/show/290946

百度开发者中心
粉丝 41
博文 614
码字总数 1314089
作品 0
昌平
私信 提问
加载中
请先登录后再评论。
我的架构演化笔记 功能1: 基本的用户注册

“咚咚”,一阵急促的敲门声, 我从睡梦中惊醒,我靠,这才几点,谁这么早, 开门一看,原来我的小表弟放暑假了,来南京玩,顺便说跟我后面学习一个网站是怎么做出来的。 于是有了下面的一段...

强子哥哥
2014/05/31
976
3
Touch Visualizer

在界面上加上用户点击、划动屏幕时的轨迹。当用户的手指在屏幕上触摸或点击时(触发任意点击事件),会在手指点击的地方加上慢慢扩展消失的红色圆环,并且在手指触摸的地方加上半透明的圆形效...

匿名
2013/01/26
417
0
基于 ThinkPHP 的内容管理系统--歪酷CMS

歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,实现多管理员管理,程序辅助功能也基本实现了常见的文...

鲁大在线
2013/02/19
6.9K
1
开源数据访问组件--Smark.Data

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL...

泥水佬
2013/03/12
2.5K
0
词典软件--DictForGeeks

DictForGeeks是个人写的一款词典软件,支持高度自定义。个人在学习过程中,发现很多科技词汇的意思跟主流的词义很不一样就想写一款可以自己定义词义的词典,支持添加和查询功能。至少要比txt...

卓尔
2013/03/30
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

连续数据包采集:数据包——硬盘

nBox Recorder是一个网络流量磁盘记录器应用程序。使用nBox Recorder,您可以从实时网络接口以千兆位速率捕获全尺寸的网络数据包,并将其写入文件中。它的设计和开发主要是因为大多数网络安全...

osc_8ki1usvn
29分钟前
0
0
Docker中级篇|深入探究Docker

简介: 深入探究Docker Docker镜像理解 Docker镜像是什么 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代...

阿里云技术博客
29分钟前
0
0
一口气说出 9种 分布式ID生成方式,面试官有点懵了

一、为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1、什么是分布式ID? 拿MySQL数据库举个栗子: 在我们业务数据量不...

漫话编程
今天
0
0
tiktok如何运营

TK的模式 TK 是字节跳动(Byte Dance)公司原创的短视频社交 App,一家成立 8 年、以数据驱动的技术公司。 我们平时用的今日头条、西瓜视频、悟空问答、抖音等等都是字节跳动的产品。 字节跳...

osc_xs2d5ls9
30分钟前
22
0
《OpenCv视觉之眼》Python图像处理三 :Opencv图像属性、ROI区域获取及通道处理

本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等...

osc_tjhvpz8x
31分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部