
/**
 * 定义图层接口
 *
 * @alias ILayer
 *
 * @summary <图层抽象类>
 */
export default class ILayer {
  /**
   * 构造函数
   * @param {Object} options -图层选项
   */
  constructor(options) {}

  /**
   * 设置数据
   * @param {Object|Array} data -GeoJSON要素集/点位数组
   *
   * @summery <注：图层为GeoServer图层时，data参数值为null>
   */
  setData(data) {}

  /**
   * 设置筛选器
   * @param {Array} filter -筛选器
   */
  setFilter(filter) {}

  /**
   * 设置绘制属性
   * @param {String} name -属性名称
   * @param {String|Object} value -属性值
   */
  setPaintProperty(name, value) {}

  /**
   * 设置布局属性
   * @param {String} name -属性名称
   * @param {String|Object} value -属性值
   */
  setLayoutProperty(name, value) {}

  /**
   * 加载图层
   */
  loadLayer() {}

  /**
   * 显示/隐藏图层
   * @param {Boolean} show -是否显示图层
   */
  showLayer(show) {}

  /**
   * 判断图层是否已加载
   *
   * @returns {Boolean}
   */
  hasLayer() {}

  /**
   * 移除图层
   */
  removeLayer() {}

  /**
   * 移除数据源
   */
  removeSource() {}

  /**
   * 绑定单击事件
   * @param {Function} event -事件函数
   */
  onClick(event) {}

  /**
   * 绑定事件
   * @param {String} name -事件名称
   * @param {Function} event -事件函数
   */
  onEvent(name, event) {}

  /**
   * 解除事件绑定
   */
  offEvent() {}
}
