Openlayer中的选择功能不起作用,所选功能不突出显示?

时间:2014-06-17 07:44:59

标签: javascript openlayers

我设法通过其属性搜索功能..问题是,它没有突出显示功能.. sample result

弹出窗口会显示,但所选功能不会突出显示...这是我的代码:

    this.showparcel = function(getpin){
        for(var f=0;f<layer_agao.features.length;f++) {
                    if(layer_agao.features[f].attributes.newpin === getpin) {
                        featsel = layer_agao.features[f];
                        selectControl.select(featsel);
                        break;
                    }
                    else{
                        selectControl.unselect(featsel);
                    }
                }
    }

1 个答案:

答案 0 :(得分:0)

使用jquery并将selectControl.select(featsel);更改为selectControl.clickFeature(featsel);可以正常工作,以避免在搜索时多次选择功能。

以下是代码:

$("#forminput").change(function(){
        for (var f = 0; f < layer_agao.features.length; f++) {
            if (layer_agao.features[f].attributes.newpin == this.value) {
                featsel = layer_agao.features[f];
                $("#mybutton").click(function(){
                    selectControl.clickFeature(featsel);
                });
                break;
            }
        }
    });

它应该放在你init()函数里面,下面是html标记。

    <form class="navbar-form navbar-right">
                        {% csrf_token %}
                            <select name="q" class="form-control" id="forminput">
                                <option type="text" value=""><b>Select Land PIN</b></option>
                                {% for getlandpins in query_map %}
                                 <option type="text" value="{{ getlandpins.newpin }}">{{ getlandpins.newpin }}</option>
                                {% endfor %}
                            </select>
                        <input type="button" class="btn btn-primary" value="Show Info" id="mybutton">
    </form>