高德地图更新SDK后,RegeocodeResult.getRegeocodeAddress部分值为空

"博客讲述了在更新高德地图SDK从7.1到8.1.0过程中遇到的应用白屏、定位信息不显示等问题。通过添加隐私权限和调用合规接口解决了白屏问题,但定位信息未显示。经过排查,发现是由于扩展字段设置不当导致,通过设置`setExtensions("all")`修复了定位数据不全的问题。"
摘要由CSDN通过智能技术生成

因为公司的老项目需要更新高德地图SDK,老版本地图用的7.1,定位为4.7.2地图版本7.1.0 ,定位版本4.7.2
需要更新到最新版的SDK8.1.0
地图版本8.1.0,定位版本4.7.2
导入新SDK后基本没啥问题,初始化geocoderSearch = new GeocodeSearch(Context),一顿Try()Catch{},改完-运行,结果app直接白屏闪退,看了一下官方文档,新版本需要加隐私政策直接在Application加一下隐私权限就可以了。高德地图隐私文档 高德官方隐私合规接口说明AMapLocationClient 之前必须进行合规检查,设置接口之前保证隐私政策合规,检查接口如下:
`

AMapLocationClient.updatePrivacyShow(context,true,true);
AMapLocationClient.updatePrivacyAgree(context,true);

添加完后APP正常运行了,正当美滋滋的时候,突然发现定位不显示了,但是打印RegeocodeResult.getRegeocodeAddress是有回调值的,但是PoiItem里就是没有值`

public List<PoiItem> poilist = new ArrayList<PoiItem>();
poilist = regeocodeResult.getRegeocodeAddress().getPois()

这个问题薅了一上午头发也没找到原因问题如图所示
没办法只好提交工单,等了一下午终于回复:
官方技术大大说,扩展字段 base表示只返回基础数据,all表示所有数据 ,默认 base
扩展字段 base表示只返回基础数据,all表示所有数据 ,默认 base。问题终于知道了,响应逆地理编码初始化时候设置一下setExtensions(“all”);即可。
`

 RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 200,GeocodeSearch.AMAP);
  //扩展字段 base表示只返回基础数据,all表示所有数据 ,默认 base,
  query.setExtensions("all");
  // 设置同步逆地理编码请求
  geocoderSearch.getFromLocationAsyn(query);`

设置完成,搞定!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果在Vue项目中使用高德地图时遇到了“AMap.Driving is not a constructor”错误,这可能是因为您未正确引入Driving插件或引入方式不正确。 在Vue项目中使用高德地图,可以通过在main.js文件中引入高德地图API并注册为全局变量来实现全局使用。例如: ```javascript // main.js import Vue from 'vue' import App from './App.vue' // 引入高德地图API import AMap from 'AMap' Vue.config.productionTip = false // 注册高德地图API为全局变量 Vue.prototype.AMap = AMap new Vue({ render: h => h(App), }).$mount('#app') ``` 在上面的代码中,我们引入了高德地图API,并通过Vue.prototype将其注册为Vue的全局变量,使其在所有组件中可用。 然后,您可以在Vue组件中使用AMap对象和Driving类来计算路线并绘制路径。例如: ```javascript <template> <div id="mapContainer" style="height:500px"></div> </template> <script> export default { data() { return { map: null, driving: null } }, mounted() { // 初始化地图 this.map = new this.AMap.Map('mapContainer', { center: [116.397428, 39.90923], zoom: 13 }); // 创建Driving对象 this.driving = new this.AMap.Driving({ map: this.map, panel: 'panel' }); // 计算路线 var points = [ [116.379028, 39.865042], [116.414032, 39.865042], [116.414032, 39.899042], [116.379028, 39.899042] ]; this.driving.search(points, (status, result) => { if (status === 'complete' && result.info === 'OK') { // 获取路线经纬度坐标数组 var path = result.routes[0].path; // 创建Polyline对象绘制路径曲线 var polyline = new this.AMap.Polyline({ path: path, strokeColor: '#3366FF', strokeWeight: 5, strokeOpacity: 0.8 }); polyline.setMap(this.map); } else { alert('路线计算失败'); } }); } } </script> ``` 在上面的代码中,我们在Vue组件的mounted生命周期函数中创建了地图和Driving对象,并计算了路线。请注意,我们使用Vue.prototype.AMap和this.AMap来访问全局的AMap对象,并使用this.AMap.Driving来访问Driving类。这样,您就可以在Vue项目中使用高德地图API,而不必担心“AMap.Driving is not a constructor”错误。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值