使用`For`循环平移到标记

时间:2016-12-05 22:00:20

标签: javascript arrays leaflet

我在数组中有几个标记(Leaflet),如

submitForm1(entry,
    function (err,res,entry) {
        //Done processing
        console.log(err);
        console.log(res);
        console.log("Done");
    }
)           

在数组中添加为

var marker1 = L.marker(...);
var marker2 = L.marker(...);
...

现在我需要使用var markerArray = []; markerArray.push(marker1); markerArray.push(marker2); ... 循环来创建一个平移到我单击的标记的函数。我试过这段代码,但它没有用。

For

任何帮助?

1 个答案:

答案 0 :(得分:1)

您所做的是将事件处理程序附加到标记(请参阅enter image description here)。

在事件处理程序中,标记是事件的目标(e.target)。

for (var i = 0; i < markerArray.length; i++) {
    markerArray[i].on("click", function(e) {
        mymap.panTo(e.target.getLatLng());    
    })
};

你可以用另一种方式写它来实现i变量在事件处理程序中没有意义:

for (var i = 0; i < markerArray.length; i++) {
    markerArray[i].on("click", markerClicked);              
};

function markerClicked(e) {
    mymap.panTo(e.target.getLatLng()); 
}