OpenLayersベクターを再描画したい。
私のhtmlボタン:
<button id="refresh" type="button">Refresh</button>
レイヤーを再描画するjquery関数では、refresh関数の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"
}),
});
}
GeoJSONクエリを変更する動的に変更されるフォームがあるavalue
ので、parksLayerを再描画できれば、レイヤーからの新しい選択が残ります。