Leaflet Moving Marker奇怪的循环

时间:2016-05-26 15:47:45

标签: javascript leaflet markers

首先让我解释一下我要做的事情: 每30秒我得到一组gps点(纬度,长度)。这些点代表了我必须移动制造者的路线,我只是想通过将标记从point1移动到point2,然后从point2移动到point3来完成它,依此类推。然后,当我收到一个新的点阵列时,我再次开始这样做。保证前一个数组的最后一个点和当前数组的第一个点是相同的。这意味着路由已连接,每条路由都是一条Big Route的一部分,Big Route分为较小的路由,这些较小的路由按顺序发送给我。 (如果最后一句话太难理解,请忽略它,没有必要去理解它)。
我如何实施
作为标记,我使用Leaflet的插件Leaflet Moving Markers
这里作为一个代码:(它没有完整,我把它写成接近我的代码并且尽可能简短)

var api = // setting api here..
var marker = L.Marker.movingMarker(
                    [[0,0],[0,0]],
                    [0],
                    { icon: icons.chosen });

var myPlugin = function(api, marker) {
    this._api = api;
    this._marker = api;

    var that = this.
    this._api.on('receive', function(points) { // receiving points here
        that.moveMarker(points, 2000);
    });
}

myPlugin.prototype.moveMarker = function(points, interval) {
    this._marker.initialize(points, interval);
    this._marker.start();
}

MyPlugin = new myPlugin(api,marker);

最后我的问题
每次收到积分时会发生什么:

  1. 标记移动,因为它应该移动(从点1到点2,从点2到点3,依此类推到最后一点。然后我们等待接收新点)
  2. 我们收到了新的积分。(很酷!)。标记以正确的顺序正确移动,但是当它到达最后一点时,对于某些(我不清楚)原因再次移动到第一个点并开始从point1移动到point2,从point2移动到point3,依此类推。它做了一圈。但只有两次!
  3. 好的,我们再次获得积分,我们的标记再次进行了一圈,这次是3圈。
  4. 我们再次收到积分,我们的标记做了4圈......
  5. ......当我们第20次收到积分时,我们的标记会跑20圈。 为什么?

    感谢您花费宝贵的时间阅读并帮助我!

0 个答案:

没有答案