方法clearLayers不清除任何标记

时间:2016-02-19 17:48:07

标签: leaflet requestanimationframe

我正在尝试向Leaflet插件MovingMarker添加一个自定义选项,以便在相应动画结束时删除每个标记。此插件扩展了L.Marker类,并使用window.requestAnimationFrame方法为标记设置动画。

考虑到这一点,我在静态属性中添加了destroyedState: 4行,在options属性中添加了remove: false行。我还添加了以下代码块:

吸气剂

isDestroyed: function() {
    return this._state === L.Marker.MovingMarker.destroyedState;
}

Setter

destroy: function() {
    if (this.isDestroyed()) {
        return;
    }
    this._state = L.Marker.MovingMarker.destroyedState;
    this._removeMarker();
},
onEnd: function(map) {
    L.Marker.prototype.onEnd.call(this, map);

    if (this.options.remove && (this.isDestroyed())) {
        this.destroy();
        return;
    }
    this._removeMarker();
},
 _removeMarker: function() {
    this._state = L.Marker.MovingMarker.destroyedState;
    if (this._animRequested) {
        L.Util.cancelAnimFrame(this._animId);
        this._animRequested = false;
    }
    this.L.Marker.MovingMarker.clearLayers(this, map);
    this.L.Marker.MovingMarker = null;
},

不幸的是,由于某种原因,当option remove设置为true时,方法clearLayers不能完成预期的工作。我尝试了 removeLayer 这个方法也无济于事。我不知道我做错了什么?这是一个有效的example,其中remove选项在第232行设置为true。

0 个答案:

没有答案