• OpenLayer学习之ol.interaction.Select


    人生最迷茫的不过于此,一堆选择放在你面前,你却不知道到底选择那个是最合适的,这点很尴尬,始终要戒备自己会不会被坑,唉好痛苦,最痛苦的莫过于此,挣扎,挣扎

    一、概念

    该交互仅针对于矢量服务,矢量服务,矢量服务,主要用于feature选中(点击、鼠标悬浮等),做出相应的操作,例如高亮显示什么的,改变渲染样式。

    二、构造函数

    • addCondition
    • condition
    • layers
    • style
    • removeCondition
    • toggleCondition
    • multi
    • features
    • filter
    • wrapX

    filterlayers都可以用于过滤,multi设置是否可以多选

    例如:

            filter: function (feature, layer) {
                return layer === circleLayer;
            },
    layers: [circleLayer],

    效果是相同的都是对指定的图层进行操作,filter是函数过滤可以设置不同的方式

    三、condition属性的值选择

    默认选择为ol.events.condition.singleClick,所有的事件点我查看所有类型,还有一个用的多值是ol.events.condition.pointerMove

    引用方式

        // 添加一个用于选择Feature的交互方式
        map.addInteraction(new ol.interaction.Select({
            condition: ol.events.condition.pointerMove,     // 唯一的不同之处,设置鼠标移到feature上就选取
            style: new ol.style.Style({
                image: new ol.style.Circle({
                    radius: 10,
                    fill: new ol.style.Fill({
                        color: 'blue'
                    })
                })
            })

    四、事件

    用的多的事件select和change事件

    select事件场景应用:选中feature要素后,获取要素的字段值等用于弹出对话框、

    change事件用于场景:选中的要素feature改变之后进行一些特定的操作

    五、总结

    本来想将进行一个展示,无奈数据没有,只是用了官网的图,和进行自定义Vector图层,进行测试,这个交互很简单使用,交互这点比ArcGIS API做的好多了,也方便。

  • 相关阅读:
    flex 和bison的安装和使用
    c++ map
    C++ 值传递、址传递、引用传递
    位运算
    POJ 1185 炮兵阵地 (状压DP)
    POJ 3114 Countries in War(强联通分量+Tarjan)
    Codeforces Round #262 (Div. 2) A B C
    2014多校第十场1002 || HDU 4972 A simple dynamic programming problem
    2014多校第十场1004 || HDU 4974 A simple water problem
    POJ 1144 Network(Tarjan)
  • 原文地址:https://www.cnblogs.com/tuboshu/p/10752359.html
Copyright © 2020-2023  润新知