OpenLayers: создание класса контрола
Добавлено: 12 окт 2010, 00:15
Вопрос, наверное, по большей части относящийся к javascript, нежели чем к OpenLayer, но так как возник именно при работе с OL, задам его здесь. Суть вот в чём. Создаём класс контрола, обрабатывающего двойные клики на фичах векторного слоя:
Создаём экземпляр:
Но как видно из примера - созданный контрол обрабатывает только клики по слою layer1. Но, вдруг возникает задача повесить такой же контрол ещё и на другой слой. Можно конечно создать ещё один класс для другого слоя, но, очевидно, это неверный путь. Подскажите, как обычно поступают в таких ситуациях.
Код: Выделить всё
OpenLayers.Control.ClickFeature = OpenLayers.Class(OpenLayers.Control, {
defaultHandlerOptions: {
'single': true,
'double': true,
'pixelTolerance': 0,
'stopSingle': true,
'stopDouble': false
},
initialize: function(options) {
this.handlerOptions = OpenLayers.Util.extend(
{}, this.defaultHandlerOptions
);
OpenLayers.Control.prototype.initialize.apply(
this, arguments
);
this.handler = new OpenLayers.Handler.Feature(
this, layer1, {
dblclick: function(feature){
.....
}
}, this.handlerOptions
);
}
});
Код: Выделить всё
var featureClickControl = new OpenLayers.Control.ClickFeature();