点击加号(添加的控件),在当前位置添加一辆单车
使用map里面的Markers,
首先在data里面声明markers属性,
markers: []
在index.wxml中渲染markers
markers='{{markers}}'
当点击加号控件的时候,在当前位置添加一辆单车
case 6:{
//获取已有的车辆
var bikes=that.data.markers;
console.log(bikes);
bikes.push({
iconPath: '/img/position.png',
width: 30,
height: 30,
longitude: 106.29,
latitude: 38.47
}
)
that.setData({
markers:bikes
})
获取鼠标移动后地图的位置
map中的bindregionchange属性名
在index.wxml中给map添加一个bindregionchange属性,并绑定一个函数
bindregionchange='regionchange'
在index.js中定义这个函数
regionchange:function(e){
console.log(e);
},
输出的返回值为
根据返回值的type属性来给地图当前位置添加单车
获取移动后的经纬度
regionchange:function(e){
//获取移动后的位置
let rtype=e.type;
if(rtype=='end'){
this.mapCtx.getCenterLocation({
success:function(res){
console.log(res.latitude);
console.log(res.longitude)
}
})
}
},
可以获取当前视野移动后的经纬度
将当前位置赋值给data里面的经纬度
这个时候出现了错误,那就是地图中只能拖动一次就再也不能拖动了,自己在这个问题上纠结了很长时间,解决方法是!小程序-视野发生变化时-导致重复触发bindregionchange且视野不能再次更改的原因分析及解决,
然后我把自己的程序改为
case 6:{
//获取已有的车辆
var bikes=that.data.markers;
this.mapCtx.getCenterLocation({
success: function (res) {
let log = res.longitude;
let lat = res.latitude;
bikes.push({
iconPath: '/img/position.png',
width: 30,
height: 30,
longitude: log,
latitude: lat
})
that.setData({
markers: bikes
})
}
})
break;
}
}
},
便可以在想添加的位置添加单车了。