SelectFeature控件无效

0 投票

你好,我是从资源中心直接找的一个示例代码,把数据发布之后能直接运行成功。但是直接把代码拷贝过来,其中引入我的SuperMap开发包后,点击事件无效,调试的时候发现点击事件函数(即下图

onFeatureSelect()函数)也没有运行?不知道是怎么回事。而且在地图窗口中,示例代码鼠标样式为默认样式,而拷过来之后样式为手形?求解答(我的api为8c)

11月 21, 2017 分类:  704次浏览 | 用户: MyGis (3 分)

1个回答

0 投票
您好,您要么把vectorLayer放到所有图层的最上边,要么就把selectFeature绑定vectorLayer及其上边的所有图层(把图层参数写成数组)。
11月 21, 2017 用户: 李熙y 名扬四海 (4,524 分)
确实是图层顺序问题,困扰了一天的问题终于解决了,非常感谢
var vectorlayer3,vectorlayer4,popup;

function seeFeature(){

vectorlayer3 = new SuperMap.Layer.Vector("Vector Layer3");

vectorlayer4 = new SuperMap.Layer.Vector("Vector Layer4"); vectorlayer3.setVisibility(false); map.addLayers([vectorlayer3,vectorlayer4]); //给vectorLayer添加单击事件 var selectFeature = new SuperMap.Control.SelectFeature([vectorlayer3], {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect}); //触发点击事件 selectFeature.repeat = true;

selectFeature.toggle = true; //selectFeature.hover=true; map.addControl(selectFeature);

selectFeature.activate(); queryBy();//执行查询函数 */ }

你好,对于这个控件的使用我又遇到了一些问题,您上次说的把vectorlayer放在所有图层的最上边,然后我在map.addLayers([vectorlayer3,vectorlayer4]);这句代码中就算调换vectorlayer3,vectorlayer4的顺序,要素也不能被选中执行,就算把selectFeature绑定vectorLayer及其上边的所有图层我也试了,通过selectFeature = new SuperMap.Control.SelectFeature([vectorlayer3,vectorlayer4],..)也是没效果,但是奇怪的是如果把vectorlayer3.setVisibility(false);改为vectorlayer3.setVisibility(true);控件就变成了有效状态,不知道这是为什么?
...