类名 common/service/igs/ogc/WMSServer.js
import BaseServer from '../../BaseServer'
import { Zondy } from '../../../base'
import { defaultValue } from '../../../util'

/**
 * IGS的WMS服务
 * @class WMSServer
 * @moduleEx ServiceModule
 * @extends BaseServer
 * @param {Object} options 构造参数
 * @param {String} [options.url] 服务基地址
 * @param {String} [options.version = '1.1.1'] 请求版本号
 * @example
 * // ES5引入方式
 * const { WMSServer } = Zondy.Service
 * // ES6引入方式
 * import { WMSServer } from "@mapgis/webclient-common"
 * WMSServer = new WMSServer({
 *    url: 'http://192.168.82.89:8089/igs/rest/services/Map/Hubei4326/WMSServer',
 *    requestInterceptor: {
 *      before: function (config) {
 *        return config;
 *      },
 *      failure: function (error) {
 *        console.log("请求发送失败(拦截器):", error)
 *      }
 *    },
 *    responseInterceptor: {
 *      success: function (result) {
 *        console.log("请求成功拦截响应")
 *        return result;
 *      },
 *      failure: function (result) {
 *        console.log("请求失败拦截响应")
 *        return result;
 *      }
 *    }
 *  });
 */
class WMSServer extends BaseServer {
  constructor(options) {
    super(options)

    this.version = defaultValue(options.version, '1.1.1')
  }

  /**
   * 获取服务元信息
   * @param options 查询参数
   * @param {Function} [options.success] 查询成功回调函数,若使用Promise方式则不必填写
   * @param {Function} [options.failure] 查询失败回调函数,若使用Promise方式则不必填写
   * @example
   * // 回调方式
   * WMSServer.getCapabitities({
   *   success: function (result) {
   *     console.log('请求成功:', result);
   *   },
   *   failure: function (result) {
   *     console.log('请求失败:', result);
   *   }
   * });
   * // promise方式
   * WMSServer.getCapabitities().then(function (result) {
   *   console.log('请求成功:', result);
   * }).catch(function (result) {
   *   console.log('请求失败:', result);
   * })
   */
  getCapabitities(options) {
    // 调用基类的查询信息方法
    const self = this
    return this._querySimpleInfo(options, function (url) {
      // 拼装返回基地址
      // 确保igs1.0的wms服务版本一定是1.1.1
      if (self.url.indexOf('igs/rest/ogc/doc') > -1) {
        return `${url}?version=1.1.1&service=WMS&request=GetCapabilities`
      }
      return `${url}?version=${self.version}&service=WMS&request=GetCapabilities`
    })
  }
}

Zondy.Service.WMSServer = WMSServer
export default WMSServer
构造函数
成员变量
方法
事件