收藏
回答

我想在小程序地图中监听实时地理位置变化,并将显示在地图上,不能用setData?

需求:我想在小程序地图中监听实时地理位置变化,并将路线用线段显示在地图上,我使用的是wx.onLocationChange()

实现方式: 我将下面的函数定义在page外面,因为定义在page里面无法调用,会报错ReferenceError: _locationChangeFn is not defined

const _locationChangeFn = function(res) {
  console
.log('location change', res) var that = this that.setData({

longitude: res.longitude,

    latitude: res.latitude,

    accuracy: res.accuracy,

    speed: res.speed

})
}

wx.onLocationChange(_locationChangeFn)
wx
.offLocationChange(_locationChangeFn) 问题: 我想获取this,然后将得到的坐标用setData的方法更新在地图上,结果拿不到this。

最后一次编辑于  2019-08-27
回答关注问题邀请回答
收藏

1 个回答

  • L°
    2019-08-26

    定义在page里面怎么就报错了  不能用_locationChangeFn:function(res){}这样定义吗

    2019-08-26
    有用
    回复 5
    • 小小阳光
      小小阳光
      2019-08-27
      在Page里面这样定义的话,会报方法没有定义的错误。ReferenceError: _locationChangeFn is not defined
      2019-08-27
      回复
    • L°
      2019-08-27回复小小阳光
      怎么会 你用的时候用let that = this;that._locationChangeFn()也会报错吗
      2019-08-27
      回复
    • 小小阳光
      小小阳光
      2019-08-27
      需要把这个方法传入函数wx.onLocationChange(_locationChangeFn),这样调用。https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.onLocationChange.html
      2019-08-27
      回复
    • L°
      2019-08-27回复小小阳光
      那你结合map的bindregionchange 这个属性 去实现试试,别在_locationChangeFn 里面setDate
      2019-08-27
      回复
    • 肖同行查询3m5.cn
      肖同行查询3m5.cn
      2019-11-06回复小小阳光
      在Page里定义,这么调用wx.onLocationChange(this._locationChangeFn)
      2019-11-06
      回复
登录 后发表内容
问题标签