持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天
记录最近微信小程序开发遇到的坑,因为高德微信sdk只支持搜索固定的几个类型,无法搜索关键字,所以最后用web服务api(不是jsapi记得分清)
1.记录地图poi搜索及显示makers标记点,点击makers显示详细信息(镇楼图)这里用的是高德地图web服务api加uniappmap组件
1.1首选得去高德申请key值,记得选申请web服务选项
1.2然后使用web服务api里的poi接口查询关键字信息
代码如下:
最好通过新的数组如updatePoints赋值makers,用foreach循环把maer里的pois信息添加进去updatePoints数组,因为poi接口获取得经纬度没用分开,所以我用js切割然后赋值,然后uniapp得makers里的id只能赋值number类型,但是高德获取到的id是英文字符串,所以可以直接用索引值赋值id,iconpath就是makers图标路径,最后记得用新的数组承接循环后的数组
uni.request({
url: 'https://restapi.amap.com/v3/place/text?key=你的key&keywords=关键字&city=天津',
method: 'GET',
success: (res) => {
console.log(res)
let updatePoints = []
this.maker = res.data.pois;
this.maker.forEach(function(item, index) {
updatePoints.push({
id: index,
title: item.name,
latitude:item.location.split(',')[1],
longitude: item.location.split(',')[0],
iconPath: '/static/marker_yellow.png',
width: 20,
height: 20
})
})
console.log(updatePoints,"up")
this.covers = updatePoints
}
})
然后使用获取当前经纬度方法
uni.getLocation({ type: 'gcj02', success: function(res) { console.log(res) that.longitude = res.longitude; that.latitude = res.latitude; } }); 经纬度绑定uni.getLocation获取到的值就行,这样地图就正常显示,
后续还有点击makers导航功能,限于篇幅,下次再写