0

大家好,因为我在 openlayers 查看器中创建了一个表单,以与交换机映射相同的方式部署。

看到这个链接: http ://www.youtube.com/watch?v=bb0JqmZW7S4

感谢您的任何回复

4

1 回答 1

1

我认为 OP 想要的是通过一个类似于默认访问 OpenLayers 中的 OverviewMap/LayerSwitcher 的按钮来访问他的自定义表单。

如何做到这一点可以从 OverviewMap 控件* 的实现方式中提取:

this.div.className += " " + this.displayClass + 'Container';
var imgLocation = OpenLayers.Util.getImagesLocation();
// maximize button div
var img = imgLocation + 'layer-switcher-maximize.png';
this.maximizeDiv = OpenLayers.Util.createAlphaImageDiv(
                       this.displayClass + 'MaximizeButton', 
                       null, 
                       new OpenLayers.Size(18,18), 
                       img, 
                       'absolute');
this.maximizeDiv.style.display = 'none';
this.maximizeDiv.className = this.displayClass + 'MaximizeButton';
OpenLayers.Event.observe(this.maximizeDiv, 'click', 
                         OpenLayers.Function.bindAsEventListener(this.maximizeControl,
                                                                 this)
);
this.div.appendChild(this.maximizeDiv);

// minimize button div
var img = imgLocation + 'layer-switcher-minimize.png';
this.minimizeDiv = OpenLayers.Util.createAlphaImageDiv(
                       'OpenLayers_Control_minimizeDiv', 
                       null, 
                       new OpenLayers.Size(18,18), 
                       img, 
                       'absolute');
this.minimizeDiv.style.display = 'none';
this.minimizeDiv.className = this.displayClass + 'MinimizeButton';
OpenLayers.Event.observe(this.minimizeDiv, 'click', 
OpenLayers.Function.bindAsEventListener(this.minimizeControl,
                                        this)
);
this.div.appendChild(this.minimizeDiv);

var eventsToStop = ['dblclick','mousedown'];

for (var i=0, len=eventsToStop.length; i<len; i++) {
    OpenLayers.Event.observe(this.maximizeDiv, 
                             eventsToStop[i], 
                             OpenLayers.Event.stop);

    OpenLayers.Event.observe(this.minimizeDiv,
                             eventsToStop[i], 
                             OpenLayers.Event.stop);
}

*:取自文件:OpenLayers/lib/OpenLayers/Control/OverviewMap.js

插入和修改它,可用于创建我认为您正在寻找的效果。

祝你好运!

于 2010-02-08T11:22:17.940 回答