我想重画一个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/