আমি যখন মানচিত্রটি জুম বা সরানো হয় তখন আমার স্তরটি আবার আঁকানো হয়। এটি আমি চাই, কারণ আমার সাথে একবারে লোড করার জন্য বিভিন্ন বৈশিষ্ট্য রয়েছে। এই কোড:
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)
});
নিম্নলিখিত কোডটি আমার নির্বাচনকোড। আমি যা করতে চাইছি না কেন এটি সমস্ত কাজ করে। যাইহোক, স্তরটি পুনরায় আঁকলে নির্বাচনটি নষ্ট হয়ে যায় এবং onFeचरUnselect নিক্ষেপ করা হয় না (যা এটি হওয়া উচিত)। আমি নিশ্চিত না যে নির্বাচনটি সত্যই হারিয়ে গেছে বা স্টাইলটি পুনরায় সেট করা হয়েছে কিনা।
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
আমার অনফেসিচারসিলিট এবং অন-ফিচারউইনসलेक्ट ফাংশন:
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];
}