我想重画一个OpenLayers向量。

我的html按钮:

<button id="refresh" type="button">Refresh</button>


和我的jquery函数重绘该图层,刷新函数中的parksLayer记录为false:

function refresh() {
    parksLayer.redraw(true);
}

function bind(){
    $("#refresh").bind("click", refresh);
}


和我的地图,我想重绘ParksLayer:

        map = new OpenLayers.Map({
            div: "map",
            layers: [
                new OpenLayers.Layer.OSM(),
                parksLayer
            ]
        });


更新

感谢您的帮助,我的矢量层的定义如下:

function changeme(avalue){
        parksLayer = new OpenLayers.Layer.Vector("Parks", {
            projection: new OpenLayers.Projection("EPSG:4326"),
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.Script({
                url: "http://my.cartodb.com/api/v2/sql",
                params: {
        q: "SELECT * FROM activities where type_code is not null"+" "+avalue,
        format: "geojson"
    },
                format: new OpenLayers.Format.GeoJSON({
                    ignoreExtraDims: true
                }),
                callbackKey: "callback"
            }),
        });
    }


我有一个动态更改avalue的表单,该表单会更改GeoJSON查询,因此,如果我可以重画parksLayer,则可以从该图层中选择一个新选项。

最佳答案

如果我阅读了Openlayers API,则redraw函数不使用任何参数...您应该尝试调用redraw()而不将“ true”作为参数...

Openlayers API:
重绘:function()
重绘图层。如果重绘了图层,则返回true;否则返回false。

问候

艾蒂安

关于jquery - 重绘openlayers矢量层,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11833071/

10-11 13:21