जब मैं ज़ूम करता हूं या नक्शे को हिलाता हूं तो मेरी परत फिर से जुड़ जाती है। यह वही है जो मैं चाहता हूं, क्योंकि मुझे एक बार में लोड करने के लिए सुविधाओं का आवंटन है। यह कोड है:
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)
});
निम्नलिखित कोड मेरा चयन कोड है। यह सब काम करता है क्योंकि मैं इसे नहीं करना चाहता। हालांकि, जब परत को फिर से तैयार किया जाता है तो चयन खो जाता है और ऑनफ्रीचर यूनेसेले को निकाल नहीं दिया जाता है (जो इसे होना चाहिए)। मुझे यकीन नहीं है कि चयन वास्तव में खो गया है या कि शैली रीसेट हो गई है।
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
मेरे onFeatureSelect और onFeatureUnselect फ़ंक्शंस:
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];
}