感谢您的到来。有什么意见或建议。点击这里吐槽一下,不吐不为快!

百度迁徙用的技术原理入门指导

移动开发 梁坤 1418人阅读 0评论

最近一朋友问我百度迁徙图到底是怎么弄出来的?而在这过程中发现我原来也有我好多不明白的地方,这也激发了我这个技术宅的兴趣,我到处找资料研究终于知道了基本的整个原理,后来想想肯定也有很多朋友不知道这背后的原理,那就分享出来做个科普吧。

一,为什么会有地理定位这个技术?

一谈到为什么会有定位技术,可能很多人的第一反应是认为这个发明就是为了让自己看地图还有找餐馆的,呵呵,其实事实相去甚远。

现在我们从源头来讲,为什么我们会有地理定位技术?

其实最早的定位系统是来自美国国防部50年代的军备竞赛,当时苏联在1957年发射了Sputnik-1人造卫星,而美国不甘示弱,1958年,为了实现军事上的高精确打击,美国海军开始研制子午仪卫星定位系统。1973年美国建立国防导航卫星系统DNSS,此后DNSS改名为Navstar即授时和测距导航卫星或者说是全球定位系统(Navigation Signal Timing and Ranging/Global Positioning System),后来简称GPS。1994年,终于完成覆盖全球98%的卫星系统。

从军备竞赛到全面民用这和互联网的发展有相似之处,互联网的前生就是为了防止遭到苏联的核打击后被摧毁重要中心节点导致全面瘫痪,进而建立起的去中心化网络,这个意外的军事发明也在随后被民间大量普及。

一切都是意外啊亲,这个发明真的不是用来给你找餐馆的。

二,那GPS定位的具体的技术细节是什么?

我只是把最基本的定位原理抽离出来,更多复杂的东西就不说了。现在假设地面接收器和天上三颗卫星都是不动的,那么现在我们要获得地面接收器的位置就可以用如下方法求解。

已知,卫星A,B,C的空间坐标为LocationA, LocationB,LocationC。

已知,接收器分别距离A,B,C的距离为D1,D2,D3。

求解,地面接收器的位置Location。

那下面接着用空间交会算法就可以求解了。

Location=function([LocationA,D1],[LocationB,D2], [LocationC,D3]);

具体函数就不用说了,说了咱们也看不懂,这是工程学的事。咱们只需要知道,绝对理想模型的情况下,根据三颗卫星的空间坐标以及举例对应物品的举例就能算出该物品在地球上的地理位置了,这是GPS工作的核心原理。

三,那百度如何做定位的?

上面给各位说了这么多GPS的定位细节,那么是不是百度苹果谷歌都只是用GPS来给用户定位的呢,哦,原来就这么简单啊?答案是又错了,科技公司都想要做的就是给用户最为精准的定位,但是由于民用GPS的定位误差比较大,没有军用GPS定位准确,而科技公司是不大可能发射高精度卫星的,就算有钱有实力也有心发射,投资人也会疯掉,所以呢科技公司全都退而求其次,除了用GPS定位以外还会用其他办法为用户做到更精确的定位,下面开始介绍百度定位时用到的方法。

百度地图定位用到的主流方法:

1)GPS定位,主要用于室外导航。

2)IP定位,这在PC时代一直都在用,比如以前用QQ外挂的时候可以看到对方在那座城市和网吧,就是用的IP定位技术。但是IP定位有个弱点就是范围不是太精确,只能定位到街道级别。

3) 基站定位,用户用2G、3G和4G网络都是要经过运营商基站的,那么通过获得用户所使用的基站位置,判断用户位置,定位半径精确范围是265米左右。

4)WIF定位,WIFI定位是最为精准的,因为WIFI的强度半径相比于其他来说都最小,当然这里的WIFI指的是大商场或者咖啡厅的wifi,通过这些公用WIFI就能相当精准的收集到信息,定位半径精确范围是35米左右。

5)混合定位,就是将上述定位方法全部混合,定位半径精确范围是60米左右。

百度地图定位用到的大数据相关技术:

我这里就介绍比较重要的三个技术。

多站定位:

如图上所示,如果一个用户既连着WIFI又连着基站的4G,那么百度就可以根据该WIFI在和基站在数据库中的空间坐标以及他们的辐射半径来计算出更精确的位置范围。这个比较好理解。

指纹定位:

左图是百度根据一个城市的基站以及WIFI的辐射强度制作的信号强度网格,而右边是一个用户手机连接基站时移动中的信号强弱变化,百度会根据用户信号变化在基站强度数据库中确定出用户所在位置,计算起来相当复杂。

众包计算:

上面谈的都是如何更精确定位的技术,现在谈下如何为用户提供决策方案的技术。百度通过收集大量用户在某些地段移动的设备、速度进而来判断某个路段的交通拥堵情况,这就是百度地图的“实时路况”功能,而百度导航又会根据“实时路况”为用户提供出行最优解决方案,当然,目前除了为个人出行提供决策方案以外,已经在为交通部的道路规划提供决策支持。

这是春节的北京路况,十分通畅。

四,百度定位实现的整套流程是什么?

前面我们知道了百度实现定位的技术,那么整套定位流程是什么呢?

上图就是百度定位的细节了,我这里不讲的太深入,只讲简单的。

第一步,手机客户端向百度服务器发送定位请求服务,并将基站的CELL-ID,WIFI信息,GPS,以及信号强弱等信息发送到百度服务器。

第二步,百度服务器收到后,将这些数据全部放入到定位数据库中进行索引,然后再进行各种大数据对比,最后决定用何种算法求得最优解,以减少数据误差。此外,百度也会在此过程中智能的不断对原来的数据库进行数据更新与校正。

第三步,百度计算完成后向客户端返回手机所处位置的经纬度。

五,百度的数据从哪里来?

好了,现在再谈最后一个问题了,有了这样的技术后,数据从哪里来。

数据来源一:地图用户。凡是使用百度地图的用户,百度就可以收集到对应数据,根据CNNIC发布的《2013-2014年中国移动互联网调查研究报告》,2014年8月百度地图占领地图市场的63.7%的用户,这也就是说百度能够收集到绝对多数的移动互联网用户的出行数据。

数据来源二:第三方应用。很多手机应用都是需要地理定位的,比如天气应用,再比如同城类应用,而普通开发者一般是没有强大定位技术的,只能借助于第三方开放定位技术平台,在国内做的最好的两家也就是百度地图开放平台和高德地图开放平台,而选择百度地图开放平台的应用,只要用户使用该应用,百度就能获得更多的数据。

目前墨迹天气和百信网用的就是百度地图的开放技术,还有更多安装了百度地图的应用百度就能收集数据。

这两个数据源就是百度最主要的数据统计来源,目前百度已与交通部有深入合作,预计后期会有可能来自交通部更加精确的数据。

最后,百度用这些定位数据的变化在春节期间做出了很diao的“百度迁徙”。

结语:

百度迁徙图非常有意思,我们看到的是一个最后呈现的完整数据图,但是在这背后确有十分复杂的高精尖技术做支撑,远比我们想象中的复杂。同时我们也看到地理定位技术最先发源于军事,最后又由于移动时代的商业发展诉求得到了更为深入的发展,所以顺着这次百度迁徙我们也再次看到了驱动技术发展的本质—恐惧与欲望。

 

感谢 搜狐IT 供稿.

如需转载,请注明文章出处和来源网址:

【百度迁徙用的技术原理入门指导】http://www.liangkun.net/335.html

喜欢 (0)or 分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址