1

我正在尝试遵循此示例: http: //openlayers.org/dev/examples/SLDSelect.html

当我点击该点时,它的颜色应该会改变,这是我的一段代码:

control =  new OpenLayers.Control.SLDSelect(
                    OpenLayers.Handler.Click,
                    {
                        //displayClass: 'olControlClick',
                        layers: [city]
                    }
                )

                map.addControl(control);
                 control.activate();

还是想不通有什么意义displayClass。以及如何分配新颜色。

4

1 回答 1

2

displayClass 是 SLDSelect 控件处于活动状态时使用的 css 类。要使用它并查看正在修改的 html 元素,请尝试像这样设置类:

   .olControlClick {
       cursor: crosshair;
       background-color: yellow;
       border: 5px solid green;
   }

当您刷新浏览器页面时,您可能会看到随着图层渲染而闪烁的黄色背景,您会看到一个十字光标,并且您会看到使用 css 类的 div 上的绿色大边框。

当 SLDSelect 控件处于活动状态时,使用它来修改地图 div 的特征。

您可以通过在 SLDSelect 控件上调用 activate() 和 deactivate() 来解决这个问题。当控件未激活时(调用 deactivate() 之后),您将看不到 css 样式的工件(没有绿色边框,没有十字光标)。当控件处于活动状态时,您将看到这 2 个样式属性(边框和光标)。

此示例可能很有用,请确保您查看源代码以查看 javascript。

于 2013-12-16T21:08:33.593 回答