Android百度地图定位getCity()为空

本文详细解析了百度地图SDK中离线定位的返回值及其含义,特别针对66离线定位结果进行了深入探讨。文章指出,在离线定位场景下,获取城市信息需依赖网络,并介绍了如何设置定位选项以实现网络优先的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过打印日志发现
location.getLocType()–>66 address,poi字段是有的,就location.getCity()—>null

查阅百度地图的LocType()返回值:

61 : GPS定位结果,GPS定位成功。

62 : 无法获取有效定位依据,定位失败,请检查运营商网络或者wifi网络是否正常开启,尝试重新请求定位。

63 : 网络异常,没有成功向服务器发起请求,请确认当前测试手机网络是否通畅,尝试重新请求定位。

65 : 定位缓存的结果。

66 : 离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果。

67 : 离线定位失败。通过requestOfflineLocaiton调用时对应的返回结果。

68 : 网络连接失败时,查找本地离线定位时对应的返回结果。

161: 网络定位结果,网络定位定位成功。

162: 请求串密文解析失败。

167: 服务端定位失败,请您检查是否禁用获取位置信息权限,尝试重新请求定位。

502: key参数错误,请按照说明文档重新申请KEY。

505: key不存在或者非法,请按照说明文档重新申请KEY。

601: key服务被开发者自己禁用,请按照说明文档重新申请KEY。

602: key mcode不匹配,您的ak配置过程中安全码设置有问题,请确保:sha1正确,“;”分号是英文状态;且包名是您当前运行应用的包名,请按照说明文档重新申请KEY。

501~700:key验证失败,请按照说明文档重新申请KEY。

可以断定,定位调用的是离线定位,获取city等信息要依赖网络,所以初始化定位的时候可以设置网络优先
option.setPriority(LocationClientOption.NetWorkFirst);//设置网络优先(不设置,默认是gps优先)

// 定位初始化
            mLocClient = new LocationClient(this);
            mLocClient.registerLocationListener(new MyLocationListenner());
            LocationClientOption option = new LocationClientOption();
            option.setOpenGps(true);// 打开gps
            option.setCoorType("bd09ll"); // 设置坐标类型
            option.setPriority(LocationClientOption.NetWorkFirst);//设置网络优先(不设置,默认是gps优先)
            option.setAddrType("all");// 返回的定位结果包含地址信息
            option.setScanSpan(10000);// 设置发起定位请求的间隔时间为10s(小于1秒则一次定位)
            mLocClient.setLocOption(option);
            mLocClient.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值