import { Zondy } from '../../common/Base';
import { QueryServiceBase } from './QueryServiceBase';
import { ObjClsQueryParameter } from './ObjClsQueryParameter';
import { IgsServiceBase } from '../../baseserver/IServiceBase';
/**
* @author 基础平台/产品2部 龚跃健
* @class module:要素服务.ObjClsQuery
* @classdesc 注记查询类
* @description Zondy.Service.ObjClsQuery
* @extends Zondy.Service.QueryServiceBase
* @param queryParam -{Zondy.Service.ObjClsQueryParameter} 对象类查询的参数类。
* @param gdbp -{String} 对象类的GDBP地址。<br>
* @param option - {Object} 属性键值对。<br>
* @param {Zondy.Object.QueryByLayerParameter} [option.queryParam = null] 查询参数信息
*/
class ObjClsQuery extends QueryServiceBase {
constructor(queryParam, gdbp, option) {
var options = option ? option : {};
super(options);
/**
* @private
* @member Zondy.Service.ObjClsQuery.prototype.queryParam
* @type {Zondy.Object.QueryByLayerParameter}
* @description 查询参数信息
*/
this.queryParam = queryParam;
/**
* @private
* @member Zondy.Service.ObjClsQuery.prototype.gdbp
* @type {String}
* @description 图层URL
*/
this.gdbp = gdbp;
/**
* @private
* @member Zondy.Service.ObjClsQuery.prototype.baseUrl
* @type {String}
* @description 基类地址
*/
this.baseUrl = 'igs/rest/extend/dxlcz';
/**
* @private
* @member Zondy.Service.ObjClsQuery.prototype.partUrl
* @type {String}
* @description 查询参数地址
*/
this.partUrl = 'objlayer/query?gdbp=' + gdbp;
this.partUrl += queryParam.getParameterURL();
}
/**
* @description 查询函数,向服务器发送请求
* @function Zondy.Service.ObjClsQuery.prototype.query
* @param onSuccess - {Function} 查询成功回调函数。
* @param onError - {Function} 查询失败回调函数。
* @example
//初始化查询结构对象,设置查询结构包含几何信息
var queryStruct = new Zondy.Service.QueryFeatureStruct();
//是否包含几何信息
queryStruct.IncludeGeometry = true;
//实例化查询参数对象
var queryParam = new Zondy.Service.ObjClsQueryParameter({
//设置查询条件
objectIds: 3,
where: "username = 'liu'",
//设置结果返回类型
resultFormat: "json",
//设置查询结构
struct: queryStruct
});
//实例化地图文档查询服务对象
var queryService = new Zondy.Service.ObjClsQuery(queryParam, "gdbp://MapGisLocal/OpenLayerVecterMap/ds/世界地图经纬度/ocls/user,gdbp://MapGisLocal/OpenLayerVecterMap/ds/世界地图经纬度/ocls/user2", {
//IP地址
ip: "develop.smaryun.com",
//端口号
port: "6163"
});
queryService.query(function (res) {
console.log(res);
}, function (error) {
console.log(error);
});
*/
query(onSuccess, onError) {
if (this.queryParam === null || !(this.queryParam instanceof ObjClsQueryParameter)) {
return;
}
var me = this;
var url = me.getFullUrl();
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
service.processAsync();
}
}
export { ObjClsQuery };
Zondy.Service.ObjClsQuery = ObjClsQuery;