import BaseServer from '../../BaseServer'
import { Zondy } from '../../../base'
/**
* IGS的WMTS服务
* @class WMTSServer
* @moduleEx ServiceModule
* @extends BaseServer
* @param {Object} options 构造参数
* @param {String} [options.url = 无] 服务基地址
* @example
* // ES5引入方式
const { WMTSServer } = Zondy.Service
// ES6引入方式
import { WMTSServer } from "@mapgis/webclient-common"
* const WMTSServer = new WMTSServer({
* url: 'http://192.168.82.89:8089/igs/rest/services/Map/Hubei4326/WMTSServer',
* 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 WMTSServer extends BaseServer {
constructor(options) {
super(options)
}
/**
* 获取服务元信息
* @param options 查询参数
* @param {Function} [options.success] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure] 查询失败回调函数,若使用Promise方式则不必填写
* @example
* // 回调方式
* WMTSServer.getCapabitities({
* success: function (result) {
* console.log('请求成功:', result);
* },
* failure: function (result) {
* console.log('请求失败:', result);
* }
* });
* // promise方式
* WMTSServer.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的wmts服务链接
if (
self.url.indexOf('igs/rest/ogc') > -1 &&
self.url.indexOf('WMTSServer') > -1
) {
return `${url}/1.0.0/WMTSCapabilities.xml`
}
return `${url}?request=GetCapabilities&service=WMTS&acceptversions=1.0.0`
})
}
}
Zondy.Service.WMTSServer = WMTSServer
export default WMTSServer