首页 / 浏览问题 / 云GIS / 问题详情
两个图层不能点击
23EXP 2018年11月15日
您好:

  我有两个图层,一个是轨迹线图层vectorLayer = new SuperMap.Layer.Vector("轨迹图层");

一个是车辆动画图层animatorVector = new SuperMap.Layer.AnimatorVector("Cars",

两个图层都有点击事件,但是为什么只能点击车辆动画图层是有效的,轨迹线图层无法点击?

//点击车辆弹框
        var selectFeature = new SuperMap.Control.SelectFeature(animatorVector,
                    {
                        callbacks:callbacks
                    });
            map.addControl(selectFeature);
            selectFeature.activate();
            
            //点击轨迹线弹框
            var selectFeature2 = new SuperMap.Control.SelectFeature(vectorLayer,
                    {
                        callbacks:callbacks2
                    });
            map.addControl(selectFeature2);
            selectFeature2.activate();

3 个回答

您好,您可以把selectFeature写成一个事件,然后图层对象那里用数据的形式把两个图层写进去
5,668EXP 2018年11月15日
请问该怎么样去写?有没有范例呢?谢谢
暂时没有相关的范例,就是写法和这个类似,只不过selectFeature的图层直接选择这两个。或者您可以把VectorLayer放在上面试一下

var selectFeature = new SuperMap.Control.SelectFeature([vectorLayer, animatorVector],
                    {
                    onSelect:onFeatureSelect,onUnselect:onUnFeatureSelect
                    });
            map.addControl(selectFeature);
            selectFeature.activate();

上面的图是没加这段代码的,下面的图是加上这段代码的

线的图层怎么跑到车子的图层上面了?而且

function onFeatureSelect(feature) {
    //TODO
    console.log("1111");
    //console.log(feature);
    var pope = new SuperMap.Popup("chicken",feature.geometry.getBounds().getCenterLonLat(),new SuperMap.Size(200,200),"example popup",true); 
    pope.closeOnMove = true; 
    map.addPopup(pope);
    }的时候,并不是每次选择都响应事件,为什么?

三年了,还有这个的完整代码嘛crying

您可以试试用onSelect方法

//声明一个矢量图层 vectorLayer,在 vectorLayer 上进行要素选择
   vectorLayer = new SuperMap.Layer.Vector("Vector Layer");
   //实例化 selectFeature 控件,调用了 onSelect 和 onUnselect 方法
   //地物被选中时调用 onSelect 方法,地物被取消选中时调用 onUnselect 方法
   selectFeature = new SuperMap.Control.SelectFeature(vectorLayer,
       {onSelect:onFeatureSelect,onUnselect:onUnFeatureSelect});
   //map上添加控件
   map.addControl(selectFeature);
   //激活控件
   selectFeature.activate();

   //要素被选中时调用此函数,需要传入当前选中要素参数feature
function onFeatureSelect(feature) {
    //TODO
}
   //要素被取消选中时调用此函数,需要传入当前要素参数feature
   function onUnFeatureSelect(feature) {
    //TODO
   }
1,076EXP 2018年11月15日
图层上下位置问题,有两个点击事件,只能点击在最上面那个 图层的点击事件,因为上面的图层把下面的图层挡住了,所以无法点击到,你这边可以控制一下图层的上下顺序问题来解决。
1,255EXP 2018年11月16日
...