javascript - 缩放到 openlayers 中的搜索功能

标签 javascript openlayers

我创建了一个 openlayers map 并使用了 bootstrap 搜索控件。单击搜索按钮后, map 将具有缩放范围,但整个 map 再次刷新。 下面是我写的源码...

<div class="input-group add-on">
          <input class="form-control" placeholder="Search" name="srch-term" id="srch-term" type="text" onkeypress="autoFill()"/>
          <div class="input-group-btn">
            <button class="btn btn-default" type="submit" onclick="searchStateName();"><i class="glyphicon glyphicon-search"></i></button>
          </div>
        </div>

function searchStateName() {

    input = document.getElementById("srch-term").value.toUpperCase();

    if (input) {
        for (var i = 0; i < countryData.length; i++) {
            //alert(countryData[0]);
            if (countryData[i].P.name_1.toUpperCase() == input) {
                alert(countryData[i].P.name_1);
                var extent = countryData[i].P.geom.getExtent();
                map.getView().fit(extent, map.getSize());

                if (countryData[i] !== highlight) {
                    if (highlight) {
                        featureOverlay.getSource().removeFeature(highlight);
                    }
                    if (countryData[i]) {
                        featureOverlay.getSource().addFeature(countryData[i]);
                    }
                    highlight = countryData[i];
                }

            }
        }
    }

}

谁能帮我看看问题出在哪里

最佳答案

循环检查你的代码:

if (countryData[i] !== highlight) {
    if (highlight) {
        featureOverlay.getSource().removeFeature(highlight);
    }
    if (countryData[i]) {
        featureOverlay.getSource().addFeature(countryData[i]);
    }
    highlight = countryData[i];
}

hightlight 是一个普通变量,不是吗?它始终保留最后创建的特征。但是您在循环中每次都删除之前创建的特征, map 最后将只有一个特征。

关于javascript - 缩放到 openlayers 中的搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48163391/

相关文章:

javascript - 使用指令设置默认变量

javascript - 使用 openlayers ,我如何确保所有点列表都显示出来?

javascript - 将图像添加到 openlayers map

javascript - OpenLayers 将坐标调整为 0,0

json - jsFiddle如何获取json?

javascript - OpenLayers 没有在我的 map 上添加标记

javascript - 使用 javascript 或 jquery 更改元素值后更改 angular2 组件模型

javascript - browserify 在全局和模块中使用 JQuery

javascript - 如何在标记中显示弹出窗口?

javascript - Jquery slideToggle 不能与 display none css 一起工作