leaflet.js 地图平移时触发事件

leaflet.js fire event when map pans

当出现新的 GPS 坐标时,我在 backbone 视图上使用此功能:

onLocationFound: function(position){
    // this function runs every time we get a valid GPS fix
    
    // here I have some preparation code, like getting "position"

    if(myApp.mapView.hasCenter){
      this.map.panTo(position.coords.latlng);
    }
  },

然后,在另一段代码中我运行这个函数:

this.map.on("moveend", function(s){
    that.doDrawReports();
});

我的问题是 moveend 事件没有捕捉到我的 panTo 操作。我怎样才能抓住它?

无法重现您的问题抱歉:

测试代码:

var map = L.map("map").setView([48.86, 2.35], 12);

setInterval(function () {
  var currentPos = map.getCenter();

  map.panTo([
    currentPos.lat,
    currentPos.lng + 0.1
  ])
}, 2000);

map.on("moveend", function () {
  console.log(map.getCenter().toString());
});

即使将间隔减少到 50 毫秒,moveend 侦听器仍会被调用。