在地图中添加单车

点击加号(添加的控件),在当前位置添加一辆单车


加号控件

使用map里面的Markers,

image.png

首先在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属性名

image.png

在index.wxml中给map添加一个bindregionchange属性,并绑定一个函数bindregionchange='regionchange'
在index.js中定义这个函数

regionchange:function(e){
    console.log(e);
  },

输出的返回值为


image.png

根据返回值的type属性来给地图当前位置添加单车
获取移动后的经纬度


image.png
 regionchange:function(e){
    //获取移动后的位置
    let rtype=e.type;
    if(rtype=='end'){
     this.mapCtx.getCenterLocation({
       success:function(res){
         console.log(res.latitude);
         console.log(res.longitude)
       }
     })
    }
  },

可以获取当前视野移动后的经纬度

image.png

将当前位置赋值给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;
      }
    }
  },

便可以在想添加的位置添加单车了。


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容