(1)坐标系确认
请确认自己设置的坐标系与展示地图的坐标系一致,目前定位SDK支持三种坐标系类型,其中bd09ll可以无偏移的展示在百度地图上。
国际经纬度坐标标准为WGS84,国内必须至少使用国测局制定的GCJ02坐标系对地理位置进行首次加密。百度坐标在此基础上,进行了二次加密措施,进一步保护了个人隐私。因此坐标系会有一定的偏移。
(2)定位模式确认
目前Android定位结果有三种,基站定位、Wi-Fi定位和GPS定位。基站定位和Wi-Fi定位统称为网络定位。基站定位的精度在200米左右,Wi-Fi定位精度在20米左右,GPS定位精度在10米。
定位SDK可设置三种定位模式,定位模式有高精度定位模式,低功耗定位模式和仅适用设备定位模式。
(3)开启数据流量和Wi-Fi
确定您的设备是否开启Wi-Fi模块。因基站定位与基站覆盖半径等因素有关,基站定位也会有一定程度的偏差。
可尝试开启数据流量和Wi-Fi对定位偏差进行修正,定位成功后即可关闭数据流量。
(4)定位场景
GPS定位在室内是不可使用的,确定您当前在室内使用网络定位,在室外可采用GPS定位来提升精度。
当您的公司搬家时,公司的Wi-Fi设备也会移动位置,Wi-Fi设备被移动后,我们需要在库中调整Wi-Fi的数据,时间一般为一天。您也可以及时在线反馈给我们,帮助我们更快的修正。
如仍然存在问题,请提供如下信息并在线反馈 给我们。
标题 | 说明 | 是否必填 |
---|---|---|
问题描述 | 详细说明问题基本情况 | 必填 |
定位设备CUID | 获取方式:打开百度地图,我的->设置->关于,长按关于,获得cuid | 必填 |
定位精确时间 | 格式如:2019年01月01日00:00:00 | 必填 |
我定位原始点(错误点)坐标 | 说明坐标及坐标系类型(BD坐标系、GCJ02、WGS84) | 必填 |
定位纠正点(正确点)坐标 | 说明坐标及坐标系类型(BD坐标系、GCJ02、WGS84) | 必填 |
定位场景 | 室内 还是 室外,如在室内场景可标注楼宇名字和定位楼层 | 必填 |
定位偏差距离值 | 非必填 | |
是否开启GPS | 非必填 | |
是否开启Wi-Fi | 非必填 | |
手机机型 | 非必填 | |
基站、Wi-Fi指纹信息 | 非必填 | |
反馈来源 | 某App或某硬件设备等 | 非必填 |
您也可以及时在线反馈给我们(提供信息可参考问题1),帮助我们更快的修正。
如百度未覆盖您的室内地图数据,您可以联系我们。
如您的室内建筑不支持室内定位或发生室内定位不准确的情况,您可以加入百度室内定位生态联盟,联系我们进行数据采集。
具体条款请参见://lbsyun.baidu.com/index.php?title=open/law
(1)您需要确保程序编译通过。如果对自己写的代码有疑问,可以参照官方demo开发,或查看标准源代码;
(2)请检查AndroidManifest.xml是否加入了相关PERMISSION和SERVICE声明;
(3)在确认测试手机架构的前提下,检查是否引入了SO文件。目前Android定位SDK已经提供所有架构下的SO文件;
(4)请确保网络通畅,无论是连接Wi-Fi还是使用2G/3G/4G信号;
(5)定位SDK的调用必须在主线程中;
(6)必须在定位SDK启动前设定好参数,例如是否使用GPS,扫描时间间隔设置等。强烈建议开发者设置并保管好自己的prodName,这样方便我们为您提供更好的定位保障服务;
(7)定位SDK start之后立即执行,这种情况下很难定位成功,因为定位SDK刚开始启动还没有获取到定位信息。这时getLocation一般为null。如果是要获取位置成功,可以在listerner中添加一个判断如果strData为空,则再发起一次定位;
(8)定位成功率在99.5%以上。建议打开Wi-Fi,或者尝试走到别的地方,多试几次即可成功定位;
(9) 请使用真机,且插上SIM卡。在虚拟机上无法进行定位测试。解决方案:
1. 请更新到最新版本;
2. android 6以上系统请检查一下手机定位开关是否打开;
3. 请检查一下应用程序是否开启定位权限;
4. 请确认是否开启GPS权限;
5. 如不满足以上情况,请到反馈平台反馈问题,点击这里立即反馈。
备注:
imei获取方式:打开手机拨号键盘,输入*#06# 或 打开百度地图,我的->设置->关于,长按关于,获得cuid。解决方案:
1. 请检查有无放入定位SDK的SO,或者是否配置正确;
2. 如果需要适配多CPU架构情况,请对应放入各SO文件。解决办法:
1.检查下网络是不是正常;
2.检查下so文件是不是否引入正确。
3.检查下手机上相关的权限是否开启。解决方法:
按照官方配置文档,仔细检查AK的配置。(1)GPS定位:根据设备GPS芯片和GPS卫星实现定位,GPS定位在室内是不可以使用的。GPS定位精度与芯片以及实际使用环境有关,一般情况下,GPS定位精度在10m左右;
(2)基站定位:根据设备获取的基站信息实现定位,基站定位精度一般不受使用环境影响,主要和基站的覆盖半径有关。百度的基站定位服务精度目前在200m左右;
(3)Wi-Fi定位:根据设备获取的Wi-Fi的信息实现定位,Wi-Fi定位精度一般不受使用环境影响,主要和Wi-Fii半径、Wi-Fi分布密度有关。目前百度的Wi-Fi定位服务精度目前在20m左右;
在户外,先开启GPS再进行定位,结果较准。但GPS比较费电,且在室内不可用。在室内,我们提供了高精度的室内定位能力,定位精度达1-3米。 在返回精确的经纬度信息同时,我们还将当前地点的地址信息、位置描述信息、周边POI信息一并返回,便于广大开发者使用。
定位模式 | 定位精度 | 优点 | 缺点 |
---|---|---|---|
|
10m(视运营商基站覆盖范围而定) | 定位精度高
不要SIM卡 |
室内不可用
定位精度与环境有关 费电 |
|
200m(取决于芯片) | 不受环境影响
不需要开启网络 |
定位精度相对较低
功耗大 |
|
20m | 定位精度高
不受环境影响 |
需要开启Wi-Fi(非连接Wi-Fi) |
定位模式 | 说明 | 适用场景 |
---|---|---|
|
同时使用网络定位和GPS定位,优先返回最高精度的定位结果 | 对定位精度要求较高且无功耗要求的场景 |
|
只会使用网络定位(Wi-Fi定位和基站定位),不会使用GPS进行定位 | 对功耗要求较高的使用场景 |
|
不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位 | 适用于户外对定位精度较高且强以来GPS模块的定位模式,例如行车、骑行、室外运动记录等 |
(1)开启并获取到位置信息后,就手动stop();
(2)根据需要,选择后台服务和及时扫描。setServiceMode设置服务模式,主要可以设置两种模式:Background(后台服务模式),Immediat(即时扫描服务模式);
Background为后台服务模式,实现策略是后台每隔设定的时间扫描一次定位依据信息,判定位置是否改变,如果改变,生成定位依据加密串。在此模式下,用户可以调用getLocation来根据当前的定位加密串从服务器获取定位依据。也可以实现并注册一个接口LocationChangedListener,当locationChanged的时候,被调用。 Immediat为即时扫描服务模式。在此模式下,后台不扫描。当用户想获取当前位置时,需要实现并注册一个接口ReceiveListener,然后调用startLocating函数,会异步地发起Wi-Fi扫描。当有结果时,定位SDK会调用接口函数;
(3)在大部分机器上,GPS初次定位需要1分钟,有的甚至要两分钟才能定位。初次定位以后,再次定位会快很多。
当setScanSpan < 1000时,为 APP主动请求定位; 当setScanSpan>=1000时,为定时定位模式(setScanSpan的值就是定时定位的时间间隔);
定时定位模式中,定位SDK会按照APP设定的时间定位进行位置更新,定时回调定位结果。此种定位模式适用于希望获得连续定位结果的情况;
对于单次定位类应用,或者偶尔需要一下位置信息的应用,可采用APP主动请求定位这种模式。其中百度经纬度坐标能无偏差地显示在百度地图上;
如果当前定位点为海外,默认且只能返回WGS84类型的坐标。(1)Android地图SDK;
(2)iOS地图SDK;
(3)Web API服务。(1)WGS84:表示GPS获取的坐标;
(2)GCJ02:是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系;
(3)BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中BD09II表示百度经纬度坐标,BD09MC表示百度墨卡托米制坐标。(1)Android地图SDK://lbsyun.baidu.com/index.php?title=androidsdk
(2)iOS地图SDK://lbsyun.baidu.com/index.php?title=iossdk
(3)Web API服务://lbsyun.baidu.com/index.php?title=webapi还是没有解决您的问题?请创建问题吧!