uniapp ui.chooselocation 高德地图poi没行政区怎么解决
在使用uniapp的ui.chooselocation组件调用高德地图时,发现返回的POI信息缺少行政区划数据(比如省市区信息),只有街道和名称。请问如何获取完整的行政区划信息?是否有参数需要额外配置,或者需要改用其他接口?求解决方案。
2 回复
在chooseLocation中,高德地图默认不显示行政区。可通过自定义地图组件,调用高德POI搜索API,手动添加行政区筛选条件来解决。
在UniApp中使用uni.chooseLocation时,如果高德地图返回的POI缺少行政区信息,可以通过以下方法解决:
1. 使用高德地图SDK替代
- 集成高德地图原生SDK,通过自定义地图组件获取更详细的POI数据(包括行政区)。
- 示例代码(需配置高德地图Key):
// 引入高德地图SDK(需在manifest.json中配置) const amap = require('./amap-wx.js'); // 高德微信小程序SDK const map = new amap.AMapWX({ key: '你的高德地图Key' }); // 搜索POI并获取详细信息 map.getPoiAround({ success: (data) => { const poiList = data.pois; // 包含行政区等完整信息 console.log(poiList); } });
2. 通过逆地理编码补充数据
- 用POI的经纬度调用高德逆地理编码API,解析出行政区。
- 示例代码:
// 使用uni.request调用高德逆地理编码API uni.request({ url: 'https://restapi.amap.com/v3/geocode/regeo', data: { key: '你的高德Key', location: '经度,纬度' // 从uni.chooseLocation返回的经纬度 }, success: (res) => { const addressComponent = res.data.regeocode.addressComponent; const district = addressComponent.district; // 获取行政区 console.log(district); } });
3. 使用第三方地图插件
- 在插件市场搜索支持行政区的地图插件(如“高德地图POI增强版”)。
注意事项:
- 高德Key申请:需在高德开放平台注册并配置小程序BundleID。
- 权限配置:在
manifest.json中声明地图和网络权限。
通过以上方法,可补充缺失的行政区信息。优先推荐逆地理编码方案,兼容性较好且无需复杂配置。

