`
带个回家
  • 浏览: 139859 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

百度地图高级研发工程师游东:百度地图技术大揭秘

阅读更多

 转载至:http://aiwgame.com

在优亿开放日上,我们邀请过众多产品、运营方面的专家,但是工程师可能比较少一点,这次的活动,我们很高兴请到了百度地图高级研发工程师游东。游东具有四年以上的地图和导航开发经验,目前主要负责百度地图的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;喜欢百度地图的朋友请点击这里,或者加微博

 

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

1
0
分享到:
评论

相关推荐

    百度2012研发工程师笔试卷

    百度2012研发工程师笔试卷百度2012研发工程师笔试卷百度2012研发工程师笔试卷

    百度2013校园招聘移动软件研发工程师笔试(北京)

    【百度2013校园招聘移动软件研发工程师笔试解析】 本次笔试主要涵盖了计算机基础、数据结构、面向对象编程以及算法设计等多个方面的知识。下面将分别对这些知识点进行详细阐述。 首先,精简指令集(RISC)是计算机...

    高级研发工程师岗位职责说明书.7z

    在IT行业中,高级研发工程师是技术团队中的关键角色,他们承担着推动技术创新、解决复杂问题以及带领团队实现项目目标的重要责任。"高级研发工程师岗位职责说明书"文档详细列出了这一职位所需的专业技能、职责和期望...

    gis工程师训练营:supermap object组件式开发光盘配套代码和数据

    2011版清华大学出版的gis工程师训练营的配套代码,希望能够对于正在学习supermap组件开发的你起到帮助

    百度2018校招核心网络研发工程师笔试题(第二批).pdf

    本资源是百度2018年校招核心网络研发工程师笔试题(第二批),涵盖了计算机科学和技术领域的多个知识点,包括算法、数据结构、计算机网络、操作系统、编程语言等方面。 1. 排序算法:冒泡排序、插入排序、快速排序...

    百度2013研发工程师A笔试卷

    百度2013研发工程师A笔试卷百度2013研发工程师A笔试卷

    百度2013研发工程师B笔试卷

    百度2013研发工程师B笔试卷百度2013研发工程师B笔试卷

    百度地图,测量距离+经纬度

    综上所述,百度地图的测量距离和获取经纬度功能为用户提供了极大的便利,无论是在日常生活还是专业工作中,都能发挥重要作用。通过熟练掌握这些操作,我们可以更加精准地使用地图服务,提高效率,优化决策。

    2012-2013百度软件研发工程师笔试

    【2012-2013百度软件研发工程师笔试】是百度公司在招聘软件研发工程师时的笔试题目,主要考察应聘者的计算机基础知识、算法设计能力以及系统设计思路。以下是相关知识点的详细说明: 1. **数据库操作步骤**: ...

    百度-2013-研发工程师B卷

    综上所述,百度2013年的研发工程师B卷笔试题目覆盖了软件开发和系统设计的多个方面,体现了百度对研发工程师综合技术能力的高度重视。通过这些题目的解答,可以筛选出具备扎实的技术基础和出色问题解决能力的应聘者...

    百度2011研发工程师笔试卷

    百度2011研发工程师笔试卷百度2011研发工程师笔试卷百度2011研发工程师笔试卷

    百度地图移动版SDK开发指南_周德懋

    百度地图移动版SDK是由百度LBS搜索部研发工程师周德懋所编撰,旨在为第三方移动应用程序提供便捷的地图服务集成方案。该SDK自2011年发布以来,历经多次迭代,目前支持Android1.5及以上版本和iOS3.0及以上版本,面向...

    2024嵌入式大厂面经百度研发工程师笔试题

    根据给定文件的信息,我们可以...综上所述,百度研发工程师笔试题不仅反映了当前嵌入式行业的技术发展趋势,也为求职者提供了一个明确的学习方向。希望以上内容能够帮助大家更好地理解嵌入式领域的相关知识和发展前景。

    2013百度校招软件研发工程师笔试题

    在2013年的百度校园招聘中,软件研发工程师的笔试环节是考核候选者技术实力的重要部分。这次笔试主要针对的是计算机科学和技术的基础知识,以及实际编程能力的考察。下面,我们将深入探讨其中可能涉及的一些关键知识...

    百度数据挖掘研发工程师实习笔试面试.doc

    百度数据挖掘研发工程师实习笔试面试.doc 以下是从给定的文件中生成的相关知识点: 1. extern"C"{}的作用和应用场景: extern"C"{}是C++语言中的一个关键字,用于指定extern "C"块中的代码使用C语言的链接规则。...

    百度2015校园招聘 研发工程师笔试题.pdf

    百度2015校园招聘 研发工程师笔试题.pdf

    DSP高级研发工程师简历Word模板.doc

    【DSP高级研发工程师】是通信、电子技术和计算机软件领域的核心角色,主要负责数字信号处理器(DSP)相关的软件系统设计与实现。以下是对该职位所需知识和技能的详细说明: 1. **数字信号处理(DSP)理论**:作为...

    IT工作岗位汇总及岗位要求word精品文档12页.docx

    包括核心产品功能和架构开发、移动软件研发、Web前端研发、机器学习/数据挖掘、深度学习算法研发、计算机视觉算法研发、自然语言处理、云计算...工程、数据库研发、系统工程师、硬件与系统技术研发、产品设计等领域...

    百度2014校园招聘软件研发工程师-笔试题

    【标题】"百度2014校园招聘软件研发工程师-笔试题"涉及到的是百度公司在2014年针对校园招聘的软件研发工程师岗位所设置的笔试环节。这通常包括一系列的技术测试,旨在评估应届毕业生在计算机科学、软件工程、算法...

Global site tag (gtag.js) - Google Analytics