Haritayı yakınlaştırdığımda veya taşıdığımda katmanım yeniden çiziliyor. İstediğim bu, çünkü aynı anda yüklenecek özelliklerin bir sürü var. Bu kod:
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)
});
Aşağıdaki kod benim seçim kodum. Bütün bunlar istediğim gibi çalışıyor. Ancak, katman yeniden çizildiğinde seçim kaybolur ve onFeatureUnselect öğesi tetiklenmez (ki bu gerekir). Seçimin gerçekten kaybolduğundan veya stilin sıfırlandığından emin değilim.
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
My onFeatureSelect ve onFeatureUnselect işlevleri:
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];
}