首页 文章

为鼠标悬停设置不同的格式并在OpenLayers中选择?

提问于
浏览
1

我在Open层中有一个矢量图层 . http://www.geos.ed.ac.uk/~s0825955/cgi-bin/maps6.pl

选择后,它将使用所选的格式设置意图,并弹出一个弹出窗口 . 我希望当鼠标在图层上移动时显示所选格式,并且弹出窗口仅在单击该功能时显示 .

我已经尝试将 {hover: true} 添加到 SelectFeature 控件,但这会在您将鼠标移到 Map 上时显示弹出窗口 .

我还尝试添加弹出窗口不听的第二个功能控件,但样式图也无法识别 .

有没有什么方法可以为没有选择功能的悬停提供不同的风格?

1 回答

  • 0

    除非第二个具有属性 highlightOnly = true ,否则一次只能激活一个SelectFeature控件 . 来自OpenLayers文档:

    highlightOnly - 如果为true,则实际上不选择要素(将它们放置在图层的选定要素数组中),只需突出显示它们即可 .

    尝试添加仅更改样式的第二个SelectFeature控件 . 它应该如下所示:

    var hover_feature_control = new OpenLayers.Control.SelectFeature(
        [your_layer],
        {
            hover: true,
            highlightOnly: true,
            renderIntent: "temporary"
        }
    );
    

    renderIntent属性应与您在样式映射中悬停时所需样式的名称相匹配 .

    styleMap: new OpenLayers.StyleMap({
            'default': default_marker_style,
            'temporary': hover_marker_style
        })
    

    确保从管理弹出窗口的控件中删除 {hover: true}

相关问题