首页 / 浏览问题 / 其他 / 问题详情
多个marker for循环注册click事件
28EXP 2018年09月27日
通过如下代码,无法通过for循环为每一个marker注册click事件。请问如何解决。官网的demo都已经看过了,没有用的     

 function createMarker(obj,iconPath){
            for(var i=0;i<100;i++){
                addMarkers(obj,i,iconPath)
            }
        }

       function addMarkers(obj,idx,iconPath) {
            let _this = this
            let size = new SuperMap.Size(20, 20);
            let offset = new SuperMap.Pixel(-(size.w / 2), -size.h);
            let icon = new SuperMap.Icon(iconPath, size, offset);
  
            markerRR = new SuperMap.Marker(new SuperMap.LonLat(obj.Longitude,obj.Latitude), icon);
            SuperMap.LonLat(obj.Longitude,obj.Latitude), icon);

            _this.vehMarkers.addMarker(markerRR);

            markerRR.events.on({
                "click": _this.comonPupop(obj),
                "scope": markerRR
            });
        },

2 个回答

markerRR = new SuperMap.Marker(new SuperMap.LonLat(obj.Longitude,obj.Latitude), icon).on('click',function(){

alert(1)

})

你这样不可以吗?
12EXP 2018年09月27日
我试试您的方法,谢谢
试了一下,还是不行
您好,您应该遍历您传入marker的数组才能遍历到每一个marker
5,668EXP 2018年09月27日
不太明白?您的意思是先构建好marker数组后再对marker数组进行for循环来进行每一个marker的click事件注册吗??

就说obj不是您传入mraker的数组吗?根据obj去建marker?然后遍历obj加载marker

http://ask.supermap.com/7825 您可以参考这个

不是的,obj不是数组。这么说吧,如下代码:obj是一个marker,这样写每一个marker一样无法触发click事件

_this.vehMarkers.markers.forEach(obj=>{
    obj.events.on({
        "click": _this.Pupop(),
        "scope": obj
    });
})
http://ask.supermap.com/7825 这个例子我看过了,一样不行啊
请问应该如何解决呢?方便给一下supermap技术支持的电话吗
您可以拨打400-8900-866
...