百度地图技术大揭秘

在优亿开放日上,我们邀请过众多产品、运营方面的专家,但是工程师可能比较少一点,这次的活动,我们很高兴请到了百度地图高级研发工程师游东。游东具有四年以上的地图和导航开发经验,目前主要负责百度地图的SDK研发工作。在技术和开发上肯定是亲临第一线的高手。

  我们整理了游东先生的演讲,希望给广大开发者提供实实在在的帮助。

  一、百度地图介绍:高端手机实现陀螺仪导航

  我们可以看到百度这一块对SDK重视还是比较大,我们的迭代版本速度也是比较快。一般来说一个小版本是一个月左右,如果大版本升级可能三个月左右的时间。iOS这边据我们统计,用户量不是特别大,所以iOS这块版本升级会慢一些。但是现在两个版本没有太大差异,基本功能完全一样。需要说明一点,大家现在有没有用到百度手机地图客户端,我们最新手机地铁可能是3G的时尚版本,我们SDK版本现在还是上个版本,在用户体验上还不太一致。不过,我们后面会有一些计划去增加版本的内容创新。

  我们的支撑平台,可以看到是基于Android1.5最低版本,基本上所有Android设备都可以适配。可以看到我们SDK功能主要是提供地图浏览,包括实时交通,卫星图。自定义覆盖物,比如用户要添加一些自己独特的地标在地图上,比如合作伙伴去哪儿,在他们地图上就会加入酒店,检索周边有哪些酒店,就会标上当前价格,这些都可以用户自定义控制。

  然后是一些基础搜索服务,比如POI,路线,地力,反地理编码之类。我们定位服务,精度如果Wi-Fi情况下200米左右,基站情况下500米以内。高端手机,基本上具备了陀螺仪,我刚刚来的时候在路上拿着手机导航过来,在走路的时候陀螺仪会标注你的方向,这样在行动过程中定位用户体验会非常好,基本上只需要通过基站就能够达到类似于GPS的精度用户体验感受。第五点就是一个离线地图。我刚刚说到现在SDK这个离线地图,跟我们百度地图手机客户端产品相比较,数据会旧一点,我们也会考虑进行升级。

  二、设计思路:功能盖过谷歌

  我们的设计思路,一个是功能完整。百度SDK跟Google相比较,我们的功能完全能够做到,对方有的我们都有,性能满足也会做一些性能方面测试。使用方便,我们的接口设计,还是有一点参考,相对于Google地图来说,或者相对于iOS来说,百度尽量考虑开发者便利性,如果从第三方图上API切换过来,接口尽量减少。百度在发布之前会做严格测试,比如24小时不间断使用,搜索上万个Case,有5万以上Monkey测试。在性能方面,跟手机地图产品保持一致,百度地图SDK内核跟百度产品内核是一致的,都是用同一套内核。

  在应用型设计,可以看到我们设计的这几个API类,MapView都是GoogleAPI都有的。在搜索,我们都是基于接口调用立刻返回得到的结果。如果要使用百度开发的SDK,首先要到我们官网申请一个API Key,只需要填上你的名字。把我们SDK的两个包导入到对应位置,因为我们的内核可能是基于C++开发。在应用Manifest里面增加一些SDK使用权限,比如获得Wi-Fi的能力,就可以在这个里面进行展示地图内容。
          

  这里说明一点,如果没有展示地图的需求,你也可以有我们的包,只需要使用检索接口,有可以获得检索内容,或者只用定位接口,也可以获得定位的内容,坐标,这不是强制的。你的HML里面配备MapView,我们有一个核心类,其他第三方没有,百度地图的所有功能都是基于这个BMapManager,这是一个官能管理类。BMapManager的使用放到onCreate就可以进行使用。这里有几个使用约定,我们SDK只基于主线程里使用,我们后续也会考虑改进。MapView是一个单实例,我们底图提供一些基础信息,比如道路街道,学校,公园,实时交通信息非常简单。
        

  覆盖物是一个很重要的使用场景,大家会基于自己需求定制你的地图上的标注,根据我们提供现有类,比如这是你当前位置,不需要你自己做改动,我们自己已经添加一些资源在里面,就可以显示你当前位置和误差半径在里面,还有个路线公交查询,调用相关的Overlay,就可以把路线显示在地图上。可以看一下这个效果,这是MyLocationOverlay,显示的当前位置和路径半径。在使用的时候,你会注意到,可以设置传感器,如果有这个传感器,题愿意打开,这样在行动过程当中用户体验会更好一些。
     
        

转载至:炒股风暴 http://aiwgame.com

  我们现在提供搜索服务,基本上是一些比较基础的服务在里面。现在,产品这边已经上了用户的详细信息数据,现在这块SDK暂时还没有加,后期还会有计划。在调用搜索接口的时候,可以看到比如要搜索肯德基,输入中间一个坐标,根据那个PoiOverlay坐标,搜索附近范围内就会有一个图标,如果搜索到结果就会通知你,你可以带这个接口里面进行处理,这样就可以显示地图上面,这个标注都是我们SDK提供好的,不需要你自己做设置,这是查询路线的。
        

  搜索内部也只有一个实例,不能同时发起几个搜索。搜索可以支持多关键字,比如搜索多个类型,可以搜宾馆,也可以搜车站,会一次性反馈给你几个搜索,你加入的关键字可以在回调里面进行处理。当然,我们服务器里面有压力考虑,你保证最好反馈结果控制在50以内,你是所有结果,比如一个关键字就能返回10个,两个关键字,最好只设5个关键字,这样就可以返回50个,当然不能设太多,服务器在计算的时候会有一些压力,就会导致搜索失败的情况。
          

  定位服务,定位是由网络,GPS,Wi-Fi,是一个混合定位,如果只有Wi-Fi也可以,也是通过注册回调里面获得结果。盖有一个地图包,我们提供官网地图,直接放到SD卡目录的BaiduMapSDK里面,你就不需要做太多扫描,第一次扫描之后会做一些文件修改,进行识别,到处的是正确地图。当然,有些用户会反馈,为什么扫描错误几次之后会错误,实际上已经扫描成功了。
        

  我们的离线地图包也是可以支持多个应用共享,如果多个应用都用了SDK,只需要一个地图包就可以了。现在这块SDK计划,我们后期产品也正在开发过程当中,后期会支持P7的SDK。我们现在SDK有一些用户也会反馈,对于个别用户来说不是特别灵活,对于他们来说地图开发包体积太大,我们后面也会考虑尽量精简,或者做成一个可配置的灵活包,用户根据自己需求去配置他吸需要的一些功能,我们后期会支持地图矢量化,包括我们看到3D效果也会进行扩展。

  当然,矢量地图量比较小,从我们现有掌握数据来说开发者并不太在意这块,我们产品这块数据量减少90%以上。我们AP资源可以到我们官网,微博上面关注,或者贴吧上面,我们也可以及时反馈。最后做一个广告,现在LBS还在招人,如果开发者有兴趣可以过来面试一下,还有机会成为同事,谢谢大家。

  编辑对技术不是太懂,游工程师的讲解远远多于小编整理的,感兴趣的朋友可以在这里下载完整的PPT;喜欢百度地图的朋友请点击这里,或者加微博

时间: 2024-07-29 09:10:04

百度地图技术大揭秘的相关文章

【高德地图API】汇润做爱地图技术大揭秘

昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以标记做爱地点与详情的地图.这不就是中国版的I just made love麽? 滑到屏幕底下,看了看阅读量,哇塞,居然有4万3!!!说明实在是有很多人关注做爱地图啊.本着研究地图的心情(绝对不是为了什么价值300的智能情趣用品!),我也就点击了[阅读原文]…… 好吧,为了证明我真的不是为了奖品,我会一边写活动步骤,一边揭秘其中的LBS技术.  

淘宝等seo广告里面所讲的三天上首页的快排技术大揭秘

淘宝等seo广告里面所讲的三天上首页的快排技术大揭秘 淘宝seo快排技术 今天,我在志在指尖群里面看了看,有人说做一个排名其实非常的简单(我去,简单?想做好seo这是何等漫长的一个事情,谈何简单)我们都知道,做好seo,不仅要做好站内,也要做好站外,不管是关键词布局,内链布局等,还是外链创设,在这是文章书写等,这都是需要很大耐心以及技术的.所以,我没打扰他,我就想听听他口中所谓seo'简单'二字是什么意思,结果意想不到,他就直说了四个字-淘宝快排-what fuck?这四个字让我笑得肚子疼(这里

微信JS-SDK坐标位置转换为百度地图坐标

微信JS-SDK开发过程中,使用getLocation获取坐标位置,如何将微信获取的坐标直接应用到百度地图中,显示以下效果: 说明:红色图标是从微信转换过来的位置,蓝色图标是周边位置.首先从微信开发流程讲解. 1.微信JS-SDK开发文档 首先进入官网的帮助文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 可对文档进行详细的研读,要获取位置信息,分以下步骤:

ol 接入百度地图

ol5 如何接入百度地图,网上的资料很多,但是大多都有问题,在级别放大时,地图发生扭曲.为此注重研究了下ol5 接入百度地图的方法. 首先明确以下问题: 百度地图的投影是3857. 百度地图的分辨率和谷歌.高德地图是不同的,不能直接用谷歌的分辨率. 百度地图切片大小为256*256 百度切片起始点为[0,0] 百度地图采用的墨卡托坐标系有偏移,需要自己实现百度的墨卡托坐标系转换方法.网上已有资料. 明确以下问题后,我们分析ol5 加载地图的方式: ol 加载地图主要涉及到以下概念: view t

WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现

原文:WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有其它途径.但鉴于咱是搞 .NET技术的,首先其冲想到的微软WPF方面,之前对WPF的了解与学习也只是停留在比较浅的层面,没有进一步深入学习与应用.所以在项目接来以后,也就赶鸭子上架了,经过

【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘

摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为wifi定位和基站定位,都是通过获取wifi或者基站信息,然后查询对应的wifi或者基站位置数据库,得到的定位地点.定位数据库可以不断完善不断补充,所以,越定位越准确.本文详细描述了,如果使用高德JS API来实现位置定位.城市定位的方法,包含了IP定位,浏览器定位,检索定位等多种网络定位方法.当然,如果您的手机有GPS功能,那么使用浏览器定位的时候,会自动获取GPS信息,使

Android中级篇之百度地图SDK v3.5.0-一步一步带你仿各大主流APP地图定位移动选址功能

定位+移动选址 百学须先立志-学前须知: 我们经常在各大主流APP上要求被写上地址,如百度外卖.爱鲜蜂收货地址等等:其中他们大多数是可以让我们在地图上移动选址.就如下面这段GIF演示的一样: 尽信书,不如无书-能学到什么? 1.地图状态MapStatus类及监听setOnMapStatusChangeListener 2.定位LocationClient类 3.反地理编码GeoCoder类 工欲善其事必先利其器-申请Key 百度地图访问应用(AK)申请地址:http://lbsyun.baidu

【百度地图API】今日小年大进步,齐头共进贺佳节——API优化升级上线,不再增加内存消耗

原文:[百度地图API]今日小年大进步,齐头共进贺佳节--API优化升级上线,不再增加内存消耗 任务描述: 今天是2011年01月26日,小年夜.百度地图API在小年夜献给广大API爱好者一份给力的礼物!那就是,百度地图API内存消耗优化升级了! 此次API优化升级后,内存消耗保持平稳,绝大部分测试中,内存消耗趋于一条直线.(如图所示) 如何实现: a)         本次测试全部采用IE6浏览器: b)         本次测试的覆盖物全部采取随机方式创建: c)         本次测试覆

【百度地图API】情人节求爱大作战——添加标注功能

原文:[百度地图API]情人节求爱大作战--添加标注功能 任务描述: 2月2日是除夕,2月14立马来!即将到来的情人节,你想送TA一份什么礼物呢? 不如,在你们居住的地方,画个大大的桃心,表达你对TA的爱意吧! 如何实现: 给地图增加一个事件监听,addEventListener: 当鼠标点击地图时,首先获取改点坐标,其次在改点坐标处增加一个红色标注. 图示: 运行代码,请点击这里. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr