    import { Zondy } from '../../../base'
    import { defaultValue } from '../../../util'
    import { Layer } from '../baseLayer'

    /**
     * OGS图层基类
     * @classdesc OGS图层基类
     * @class OGCLayer
     * @moduleEX LayerModule
     * @extends Layer
     * @param {Object} options 构造参数
     * @param {Number} [options.minScale = 0] 最小缩放级数
     * @param {Number} [options.maxScale = 20] 最大缩放级数
     * @param {String} [options.tokenKey = 'token'] token名
     * @param {String} [options.tokenValue = undefined] token值
     * @param {String} [options.version = ''] 服务版本
     * @param {Object} [options.customParameters = {}] 自定义服务参数
     * @param {Object} [options.customLayerParameters = {}] 自定义图层参数
     */
    class OGCLayer extends Layer {
      constructor(options) {
        super(options)
        // eslint-disable-next-line no-param-reassign
        options = defaultValue(options, {})

        /**
         * ogc版本号
         * @member {String} OGCLayer.prototype.version
         */
        this.version = defaultValue(options.version, '')

        /**
         * 自定义查询参数customParameters
         * @member {Object} OGCLayer.prototype.customParameters
         */
        this.customParameters = defaultValue(options.customParameters, {})
        /**
         * 图层自定义查询参数customLayerParameters
         * @member {Object} WFSLayer.OGCLayer.customLayerParameters
         */
        this.customLayerParameters = defaultValue(options.customLayerParameters, {})
      }

      /**
       * @description 转换为json对象
       * @return {Object} json对象
       */
      toJSON() {
        const _json = super.toJSON()
        _json.version = this.version
        _json.customParameters = JSON.parse(JSON.stringify(this.customParameters))
        _json.customLayerParameters = JSON.parse(
          JSON.stringify(this.customLayerParameters)
        )
        return _json
      }
    }

    Zondy.Layer.OGCLayer = OGCLayer
    export default OGCLayer