首页 / 浏览问题 / WebGIS / 问题详情
leaflet中,如何为每一个marker添加不同的click事件?
3EXP 2020年06月15日
for (var i = 0; i < coords.length; i = i + 5) {

      //为路线添加顺序注记

      var markerTSPUnit = L.marker([coords[i][1], coords[i][0]]);

    
      // bingPopup绑定标签内容

      markerTSPUnit.bindPopup("第" + i + "个节点(不是停靠点)");

      // click事件

      markerTSPUnit.on("click", function (e) 

        {

          console.log(i)

          alert("第"+coords[i][0]);

        }

      );

      markerTSP.addLayer(markerTSPUnit);

      markerTSPUnit = null;

      markerTSP.addTo(map);



    }

我在旅行商分析中,各五个节点添加一个markerTSPUnit,并为它们添加click事件。测试内容为alert("第"+i),但最终输出都是“第40”,即i为循环中的最大值

如果能在循环中为每个markerTSPUnit都添加不同的click事件?(我想做的是当点击某个标签时,将地图中心移到下一个markeTSPUnit处)

使用的是iserver 10 iclient for leaflet 

1个回答

您好  

            result.tspPathList.map(function (result) {
                 console.log(result)
                 let corrs=result.route.geometry.coordinates[0];
                 for(var i=0;i<corrs.length;i=i+5){
                          //为路线添加顺序注记
L.marker([corrs[i][1], corrs[i][0]]).bindPopup(i+'nihao').addTo(map);

                 }
3,352EXP 2020年06月15日
不,bindpopup方法只能在点击时弹出标签吧?我想要的是在点击时能够执行函数,而每个标签执行的函数是不同的。比如点击标签能将地图中心移到下一个标签处
...