Source: layers/baseMap.js

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;