Source: core/abstractMap.js

/**
 * Класс AbstractMap используется в качестве родительского для дальнейшего наследования и создания кастомных карт.
 */
class AbstractMap {
   /**
    * Конструктор AbstractMap - используется дли инициализации начальных значений (параметров)
    * @param {object} params - начальные параметры для создания экземпляра карты
    * @param params.name {string} - имя карты
    * @param params.target {string} - идентификатор DOM элемента
    * @param params.layers {array} - массив слоев, включаемых в карту при начале работы
    * @param params.loadTilesWhileAnimating {boolean} - загружать тайлы при анимации
    * @param params.loadTilesWhileInteracting {boolean} - загружать тайлы при вызове взаимодействий
    * @param params.longitude {number} - стартовая долгота
    * @param params.latitude {number} - стартовая долгота
    * @param params.zoom {number} - уровень приближения
    * @param params.projection {string} - код проекции
    * @param params.renderer {string} - код рендерера - webgl, canvas (по умолчанию - webgl)
    */
   constructor(params) {
      this.initEvents(params);
      this.initStore(params);
   }

   initEvents(params) {
      this.events = {};
   }

   /**
    * Инициализация хранилища объекта карты
    * @param params
    */
   initStore(params) {
      this.params = params;
   }

   /**
    * Центрировать карту
    * @param params
    */
   center(params) {
   };

   /**
    * Уничтожить объект карты и ссылки на слои
    */
   destroy() {
      delete this.map;
   };

   /**
    * Получение текущей базовой карты
    */
   getBaseMap() {
   };

   /**
    * Получение описания карты
    */
   getDescription() {
      return this.description;
   };

   /**
    * Получение истории карты
    */
   getHistory() {
   };

   /**
    * Получение коллекции слое, зарегистрированных на карте
    */
   getLayers() {
   };

   /**
    * Получение текущей координаты курсора мыши
    */
   getMousePosition() {
   };

   /**
    * Получение имени карты
    */
   getName() {
   };

   /**
    * Получение текущего масштаба
    */
   getScale() {
   };

   /**
    * Включение слоев в группу
    */
   groupLayers(layers) {
   };

   /**
    * Скрытие карты
    */
   hide() {
   };

   /**
    * Идентификация объектов карты
    * @param params
    */
   identify(params) {
   };

   /**
    * Перемещение карты в заданную точку
    * @param params
    */
   panTo(params) {
   };

   /**
    * Печать содержимого карты
    */
   print() {
   };

   /**
    * Удаление слоя с карты
    */
   removeLayer(layer) {
   };

   /**
    * Изменение порядка слоев
    */
   reorderLayers(prevLayerIds, nextLayerIds) {
   };

   /**
    * Сохранение карты
    */
   save(params) {
   };

   /**
    * Сохранение карты как
    */
   saveAs(params) {
   };

   /**
    * Поиск объекто в карте по поисковой строке
    */
   search(params) {
   };

   /**
    * Назначение новой базовой карты
    * @param id
    */
   setBaseMap(id) {
   };

   /**
    * Присвоение описания объекту карты
    */
   setDescription(description) {
      this.description = description;
   };

   /**
    * Присвоение имнени
    */
   setName(name) {
      this.name = name;
   };

   setProjection(projection) {
      this.projection = projection;
   };

   setScale(scale) {
      this.scale = scale;
   };

   share() {
   };

   show() {
   };

   zoom() {
   };

   zoomToUserLocation() {
   };

   /**
    * Привязка событий и вызов обратной функции
    * @param eventName
    * @param func
    */
   on(eventName, func) {

   }

   /**
    * Отвязка события от объекта
    * @param eventName
    */
   off(eventName) {

   }

   /**
    * Создание события
    * @param eventName
    */
   emit(eventName) {

   }
}

module.exports = AbstractMap;