前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 定位之百度地图定位 问题总结

Android 定位之百度地图定位 问题总结

作者头像
再见孙悟空_
发布2023-02-10 14:29:58
1.5K0
发布2023-02-10 14:29:58
举报

之前做百度地图定位这个功能,碰到的问题非常多,这里总结一下,百度地图官方文档里面解释的很清楚,现在百度定位采用的是GPS,基站,Wi-Fi等多种定位方式,适用于室、内外多种定位场景,但是这个优先级我们是可以调整的。 1.定位方式  是gps优先还是 基站定位优先

option.setPriority(LocationClientOption.NetWorkFirst); // 设置网络优先 option.setPriority(LocationClientOption.GpsFirst); //设置gps优先 2.定位环境  有网定位 无网络定位 百度地图中如果你将定位设置为  gps优先,这个即使你的手机无法联网并且不插电话卡也是可以定位出坐标的(肯定是可以的)。 无网络 定位模式下,不需要连接网络,只使用GPS进行定位,但是这种模式下不支持室内环境的定位。在室内基本是肯定获取不到坐标的,我测试过。 而且这个就算是在室外  可能也要等1—3分钟不等才能拿到值(和手机机型设备有关,后面会具体讲到)。 注意:还有一种特殊情况就是 ----在有网络的情况下将定位方式设置为 gps优先,这种情况会很快的获取到坐标,但是这个坐标是 返回 的基站坐标 所以误差比较大。 有的人想问设置的gps优先 为什么返回的是基站坐标呢? 跟大家说一下 ,这个问题我专门咨询过百度地图定位sdk设计人员(偶然认识,加的qq),他说是这样的:因为gps定位需要时间较长, 所以在有网络连接的状态下, 会先将附近的基站坐标返回给用户,然后等gps初始化好以后再将 gps定位出来的坐标返回给用户。所以这种情况下  你测试的时候会发现,开始坐标误差比较大,慢慢误差会变小,就是这个原理。 3.定位误差问题

基站精度为平均200米左右,视运营商基站覆盖范围而定。WIFI精度为20米左右。GPS精度最高,为10米左右(取决于芯片)。在户外,先开启GPS再进行定位,结果较准。但GPS比较费电,且在室内不可用。 另外,&addr=detail 想要获取完整地址(详细到门牌号),或者&addr=rough 想要获得到城市一个级别的地址(比如返回中国北京北京);  上面这段是百度官方文档里面的解释:  这个我 在做的时候基本是这种情况, 文档里面提到的 精度取决于芯片的问题,其实就是不同手机设备的差异。这个我专门做过测试,我用了5台手机测试:   htc one ,三星I9118,htc t328w,红米1s,联想a820 。 这5台手机在室外同一个位置百度地图定位获取 经纬度坐标,测试结果是: htc one 误差2-3米 有时候是0-1米  非常精确了相对来说,htc t328w 红米1s,联想 都是 15-30米左右,三星那个机型稍微差点  定位速度不仅慢,而且误差也较大  误差有时候是200多米,稳定后也是80米左右。这个稳定的意思是 ,gps初始化需要时间的,一般要2-3分钟以后,误差范围的数字会越来越小。 获取误差范围的方法是:BDLocation类下的方法  location.getRadius();//获取定位精度 上面是我的一部分总结 ,没写完,有点多。后面的再补上,大家如果做百度地图这块有啥问题,咱们可以互相交流。评论我能看到!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档