OpenLayers按钮触发了函数问题

时间:2012-10-01 10:37:30

标签: javascript function button openlayers

我将一些toggle_type按钮添加到OpenLayers面板以打开/关闭矢量图层(每个按钮控制矢量图层可见性)。地图也有一个selectFeature事件监听器,它在另一个div中显示要素属性。

仅在编码图层时有效。但是,如果我改变我的代码使用数组添加几个层问题开始。 我使用数组(capasVectoriales)来存储JSON文件中创建的矢量图层。这样做,按钮触发的停用功能开始做奇怪的事情,而不是删除图层并保持功能在地图上“打印”(平移和缩放时不移动)。  当我再次激活按钮时,功能按预期运行。我可以使用来自Firebug的map.removeLayer(map.layers [1])删除图层。 这是代码,

            function init() { .....

            capaRestauracion=capasVectoriales[0];

            var funcionActivarRestauracion= function() {
                map.addLayer(capaRestauracion);
                console.log('turn on' + capaRestauracion.name);
            };
            var funcionDesactivarRestauracion= function() {
                map.removeLayer(capaRestauracion);
                console.log('turno off ' + capaRestauracion.name);
            };

            // create type_toggle button
            var botonRestauracion = new OpenLayers.Control.Button({
                displayClass : 'boton' + capa,
                eventListeners : {
                    'activate' : funcionActivarRestauracion,
                    'deactivate' : funcionDesactivarRestauracion
                },
                title : 'Activar/Desactivar ' + capa,
                type : OpenLayers.Control.TYPE_TOGGLE
            });

            //create an external panel
            panelExterno = new OpenLayers.Control.Panel({
                div : document.getElementById("panel")
            });
            //add buttons to external panel

            panelExterno.addControls([botonRestauracion]);

            // add panel to map
            map.addControl(panelExterno);


            //activate button

            panelExterno.controls[0].activate();

            // create the select feature control
            var selector = new OpenLayers.Control.SelectFeature(capasVectoriales, {
                hover : true,
                autoActivate : true
            });


            map.addControl(selector);

当我尝试用“capaVectorial [0]”数组项替换“capaVectorial”变量时似乎存在问题,但不明白为什么。

0 个答案:

没有答案