/**
* Класс AbstractLayer - класс, описывающий основные методы и свойства классов слоев, наследуюемых от него
*/
class AbstractLayer {
/**
* Создает экземпляр абстрактного слоя
*/
constructor(params) {
this.initStore(params);
}
/**
* Инициилаизация внутренного хранилища
*/
initStore(params) {
this.store = {};
this.layer = {};
this.events = {};
}
/**
* Идкетификация объектов слоя, находящихся в точке
* @param params
* @return {Array}
*/
identify(params) {
return [];
}
/**
* Запрос к объектам слоя
* @param params
* @return {Array}
*/
query(params) {
return [];
}
/**
* Поиск объектов слоя по текстовой строке
* @param {object} params
* @return {Array}
*/
search(params) {
return [];
}
/**
* Присвоение объекта родительской карты
* @param map
*/
setMap(map) {
this.map = map;
}
/**
* Получение родительской карты
* @return {*}
*/
getMap() {
return this.map;
}
/**
* Установление видимости слоя
* @param {boolean} value - Возможные значения - true, false
* @param afterTimeValue
*/
setVisibility(value, afterTimeValue) {
let timeValue = afterTimeValue === undefined ? Math.round(Math.random() * 100 + 50) : afterTimeValue;
let timeoutIndex = setTimeout(() => {
this.layer.setVisible(value);
clearTimeout(timeoutIndex);
}, timeValue);
}
setOptions(){
}
/**
* Получение текущей видимости слоя
*/
getVisibility() {
}
/**
* Назначение рендерера (функции стиля объектов)
* @param renderer
*/
setStyle(renderer) {
}
/**
* Получение рендерера (функции стиля)
*/
getStyle() {
}
/**
* Получение текущего состояния слоя
*/
getState() {
}
/**
* Привязка событий и вызов обратной функции
* @param eventName
* @param func
*/
on(eventName, func) {
}
/**
* Отвязка события от объекта
* @param eventName
*/
off(eventName) {
}
emit(eventName) {
}
}
module.exports = AbstractLayer;