import { CatalogService } from './CatalogService';
import { IgsServiceBase } from '../../baseserver/IServiceBase';
/**
* @author 基础平台/产品2部 龚跃健
* @class module:目录服务.TileLayer
* @classdesc 瓦片图层类
* @description Zondy.Catalog.TileLayer
* @extends Zondy.Catalog.CatalogService
* @param option - {Object} 属性键值对。<br>
* @param {String} [option.tileName = null] 瓦片名称
* @param {String} [option.version = 2.0] 瓦片版本
*/
class TileLayer extends CatalogService {
constructor(option) {
var options = option || {};
super(options);
/**
* @private
* @member Zondy.Catalog.TileLayer.prototype.tileName
* @type {String}
* @description 瓦片名称
* @default null
*/
this.tileName = options.tileName !== undefined ? options.tileName : null;
/**
* @private
* @member Zondy.Catalog.TileLayer.prototype.tileName
* @type {String}
* @description 瓦片版本
* @default 2.0
*/
this.version = options.version !== undefined ? options.version : '2.0';
}
/**
* 获取指定瓦片列表
* @function Zondy.Catalog.TileLayer.prototype.getTileList
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var tileInfo=new Zondy.Catalog.TileLayer({
ip: "localhost",
port: "6163",
});
tileInfo.getTileList(function(res){
console.log(res)
},function (error) {
console.log(error)
});
*/
getTileList(onSuccess, onError) {
var me = this;
me.partUrl = 'tiles?f=json';
if (this.version) {
if (me.version === '2.0') {
me.partUrl += '&v=2';
} else {
me.partUrl += '&v=' + me.version;
}
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
/**
* 获取指定瓦片的详细信息
* @function Zondy.Catalog.TileLayer.prototype.getTileInfo
* @description 返回指定瓦片的详细信息
* @param onSuccess - {Function} 成功回调函数。
* @param onError - {Function} 失败回调函数。
* @example
var tileInfo=new Zondy.Catalog.TileLayer({
ip: "localhost",
port: "6163",
tileName: "CHINA4490"
});
tileInfo.getTileInfo(function(res){
console.log(res)
},function (error) {
console.log(error)
});
*/
getTileInfo(onSuccess, onError) {
var me = this;
me.partUrl = 'tiles/' + me.tileName + '?f=json';
if (me.version) {
me.partUrl += '&v=' + me.version;
}
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
}
export { TileLayer };
Zondy.Catalog.TileLayer = TileLayer;