@ciniki/iclient-maplibregl
Version:
@supermapgis/iclient-maplibregl 是一套基于 Maplibre GL 的云 GIS 网络客户端开发平台, 支持访问 SuperMap iServer / iEdge / iPortal / iManager / Online 的地图、服务和资源,为用户提供了完整专业的 GIS 能力, 同时提供了优秀的可视化功能。
157 lines (147 loc) • 7.92 kB
JavaScript
import { GeoprocessingService as CommonGeoprocessingService } from '@ciniki/iclient-common/iServer/GeoprocessingService';
import { ServiceBase } from './ServiceBase';
/**
* @class GeoprocessingService
* @classdesc 处理自动化服务接口类。通过处理自动化工具构建处理自动化模型并运行,实现空间数据处理与分析过程的自动化。<br>
* 提供方法:获取处理自动化服务任务列表、某一任务的执行信息、异步执行状态信息;获取处理自动化工具的工具列表、某一工具的信息、异步执行的结果;异步、同步执行处理自动化工具;取消处理自动化任务的异步执行等。
* @version 11.1.0
* @category iServer ProcessingAutomationService
* @modulecategory Services
* @extends {ServiceBase}
* @example
* //为了安全访问受保护的处理自动化服务,必须通过传递iserver令牌(token),才能正确访问相关资源。
* SecurityManager.registerToken(serviceUrl, token);
* var geoprocessingService = new GeoprocessingService("http://localhost:8090/iserver/services/geoprocessing/restjsr/gp/v2")
geoprocessingService.submitJob(identifier,params, environments, function(serverResult) {
console.log(serverResult.result);
var jobID = serverResult.result.jobID;
var options = {
interval: 5000,
statusCallback: function(state) {
console.log("Job Status: ", state);
}
};
geoprocessingService.waitForJobCompletion(jobID, identifier, options, function(serverResult) {
console.log(serverResult);
})
})
* @param {string} url - 服务地址。
* @param {Object} options - 参数。
* @usage
*/
export class GeoprocessingService extends ServiceBase {
constructor(url, options) {
super(url, options);
this.headers = {};
this.crossOrigin = true;
this.withCredentials = true;
this.proxy = true;
this._geoprocessingJobsService = new CommonGeoprocessingService(this.url, {
proxy: this.options.proxy,
withCredentials: this.options.withCredentials,
crossOrigin: this.options.crossOrigin,
headers: this.options.headers
});
}
/**
* @function GeoprocessingService.prototype.getTools
* @description 获取处理自动化工具列表。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
getTools(callback) {
return this._geoprocessingJobsService.getTools(callback);
}
/**
* @function GeoprocessingService.prototype.getTool
* @description 获取处理自动化工具的 ID、名称、描述、输入参数、环境参数和输出结果等相关参数。
* @param {string} identifier - 处理自动化工具 ID。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
getTool(identifier, callback) {
return this._geoprocessingJobsService.getTool(identifier, callback);
}
/**
* @function GeoprocessingService.prototype.execute
* @description 同步执行处理自动化工具。
* @param {string} identifier - 处理自动化工具 ID。
* @param {Object} parameter - 处理自动化工具的输入参数。
* @param {Object} environment - 处理自动化工具的环境参数。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
execute(identifier, parameter, environment, callback) {
return this._geoprocessingJobsService.execute(identifier, parameter, environment, callback);
}
/**
* @function GeoprocessingService.prototype.submitJob
* @description 异步执行处理自动化工具。
* @param {string} identifier - 处理自动化工具 ID。
* @param {Object} parameter - 处理自动化工具的输入参数。
* @param {Object} environment - 处理自动化工具的环境参数。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
submitJob(identifier, parameter, environment, callback) {
return this._geoprocessingJobsService.submitJob(identifier, parameter, environment, callback);
}
/**
* @function GeoprocessingService.prototype.waitForJobCompletion
* @description 获取处理自动化异步执行状态信息。
* @param {string} jobId - 处理自动化任务 ID。
* @param {string} identifier - 处理自动化工具 ID。
* @param {Object} options - 状态信息参数。
* @param {number} options.interval - 定时器时间间隔。
* @param {function} options.statusCallback - 任务状态的回调函数。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
waitForJobCompletion(jobId, identifier, options, callback) {
return this._geoprocessingJobsService.waitForJobCompletion(jobId, identifier, options, callback);
}
/**
* @function GeoprocessingService.prototype.getJobInfo
* @description 获取处理自动化任务的执行信息。
* @param {string} identifier - 处理自动化工具 ID。
* @param {string} jobId - 处理自动化任务 ID。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
getJobInfo(identifier, jobId, callback) {
return this._geoprocessingJobsService.getJobInfo(identifier, jobId, callback);
}
/**
* @function GeoprocessingService.prototype.cancelJob
* @description 取消处理自动化任务的异步执行。
* @param {string} identifier - 处理自动化工具 ID。
* @param {string} jobId - 处理自动化任务 ID。
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
cancelJob(identifier, jobId, callback) {
return this._geoprocessingJobsService.cancelJob(identifier, jobId, callback);
}
/**
* @function GeoprocessingService.prototype.getJobs
* @description 获取处理自动化服务任务列表。
* @param {string} identifier - 处理自动化工具 ID。(可选,传参代表identifier算子的任务列表,不传参代表所有任务的列表)
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
getJobs(identifier, callback) {
return this._geoprocessingJobsService.getJobs(identifier, callback);
}
/**
* @function GeoprocessingService.prototype.getResults
* @description 处理自动化工具异步执行的结果,支持结果过滤。
* @param {string} identifier - 处理自动化工具 ID。
* @param {string} jobId - 处理自动化任务 ID。
* @param {string} filter - 输出异步结果的 ID。(可选,传入filter参数时对该处理自动化工具执行的结果进行过滤获取,不填参时显示所有的执行结果)
* @param {RequestCallback} [callback] 回调函数,该参数未传时可通过返回的 promise 获取结果。
* @returns {Promise} Promise 对象。
*/
getResults(identifier, jobId, filter, callback) {
return this._geoprocessingJobsService.getResults(identifier, jobId, filter, callback);
}
}