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