У меня странная проблема с использованием событий векторных слоев. Здесь пропущено мой код:Проблемы с событиями OpenLayers, featureover и onselect
var options = {
projection : "EPSG:3857",
displayProjection : "EPSG:4326",
numZoomLevels : 18,
//after delete this part below of option everything works good
eventListeners: {
featureover: function(e) {
document.getElementById("output").innerHTML="ok';
}}};
map = new OpenLayers.Map('map', options);
w_parcels = new OpenLayers.Layer.Vector("PARCELS", {
styleMap : style_parcels,
projection : "EPSG:3857",
strategies : [ new OpenLayers.Strategy.Fixed() ],
protocol : new OpenLayers.Protocol.HTTP({
url : "parcels.php",
format : new OpenLayers.Format.GeoJSON()})
});
map.addLayers([osm,w_parcels]);
selectControl = new OpenLayers.Control.SelectFeature(w_parcels, {
clickout: false,
multiple: true,
onSelect : onFeatureSelect,
onUnselect : onFeatureUnselect,
toggleKey: "ctrlKey" // ctrl key removes from selection
});
selectControl.handlers.feature.stopDown = false;
map.addControl(selectControl);
selectControl.activate();
map.addControl(new OpenLayers.Control.ScaleLine());
function onFeatureSelect(feature) {
console.log('it works');
}
В этом коде события onselect dosen't работа всегда, когда я нажимаю на функцию на слое (иногда я должен сделать двойной щелчок).
Если удалить eventListeners из опций, то onselect отлично работает, я имею в виду всегда, когда я нажимаю функцию на слое.
Что не так в моем коде? Есть ли возможность разрешить этот конфликт между eventListeners a onselect?
Спасибо! Возможно, это может быть хорошим решением, но у меня есть все логическое приложение, использующее onselect, где все связано со столами и т. Д., И используя информацию о нажатых клавишах ctrl, shift, measure area и distance. Это могло бы повредить все это :(Еще раз спасибо за интерес к моей проблеме. – Artik