Ketika saya memperbesar atau memindahkan peta, layer saya digambar ulang. Ini yang saya inginkan, karena saya memiliki banyak fitur untuk dimuat sekaligus. Ini kodenya:
wfs = new OpenLayers.Layer.Vector("WFS", {
strategies: [new OpenLayers.Strategy.BBOX({
resFactor: 1,
ratio:1
})],
protocol: new OpenLayers.Protocol.WFS({
maxFeatures:1000,
url: myUrl,
featureType: myFeatureType,
featureNS: myFeaturedNS,
version: "1.1.0"
}),
filter: setFilter(year, variant)
});
Kode berikut adalah kode pilihan saya. Ini semua berfungsi seperti yang saya inginkan. Namun, ketika layer digambar ulang pemilihannya hilang dan onFeatureUnselect tidak diaktifkan (yang seharusnya). Saya tidak yakin apakah pilihannya benar-benar hilang atau gaya tersebut dipasang kembali.
selectCtrl = new OpenLayers.Control.SelectFeature(
wfs,
{
clickout: true, toggle: false,
multiple: false, hover: false,
box: true,
toggleKey: "shiftKey", // ctrl key removes from selection
multipleKey: "shiftKey",
eventListeners: {
featurehighlighted: onFeatureSelect,
featureunhighlighted: onFeatureUnselect
}
}
);
@geographika
Fungsi onFeatureSelect dan onFeatureUnect saya pilih:
function onFeatureSelect(e) {
var feature = e.feature.attributes;
var featureclone = e.feature.clone();
var style = {
pointRadius: 10,
fillOpacity:0,
strokeColor: "#000000"
};
featureclone.style = style;
layer2.addFeatures([featureclone]);
selectedFeatures[featureclone.attributes.receptor_id] = featureclone;
}
function onFeatureUnselect(e) {
var feature = e.feature.attributes;
layer2.removeFeatures(selectedFeatures[feature.receptor_id]);
delete selectedFeatures[feature.receptor_id];
}