let AbstractLayer = require('./abstract');
let baseMapEmbeddedList = require('../../modules/constants/basemaps.js');
/**
* Класс представляющий слой базовой карты
*/
class BaseMapLayer extends AbstractLayer {
/**
* Создание экземпляра BaseMapLayer
* @param params - Код (идентификатор) слоя базовой карты. Возможные значения - osm, terrain, watercolor, toner, none
*/
constructor(params) {
super(params);
this.layer = create(params);
}
initStore(params) {
this.store = {};
this.store.id = params.id;
this.store.layerType = "opengis.layers.baseMap";
this.layer = {};
}
/**
* Возвращает объект (словарь), содержащий перечень объектов встроенных базовых карт
* @return {object} baseMapEmbeddedList - Словарь встроенных базовых карт
*/
getBaseMapEmbeddedList() {
return baseMapEmbeddedList;
}
/**
* Возвращает объект базовой карты по идентификаторы
* @param {string} id - Идентификатор (код) базовой карты
* @return {object} baseMapItem - Объект базовой карты
*/
getBaseMapById(id) {
return getBaseMapConfiguration(id);
}
}
function create() {
return baseMapEmbeddedList;
}
function getBaseMapConfiguration(id) {
let baseMapsDictionary = baseMapEmbeddedList;
let baseMap = baseMapsDictionary.find(function (item) {
return item.id === id;
});
return baseMap;
}
module.exports = BaseMapLayer;