import WorkFlowServer from './WorkFlowServer'
import { defaultValue } from '../../../util'
/**
* 路径分析
* @class WorkFlowServer600233
*
* @extends WorkFlowServer
* @param {Object} options 构造参数
* @param {String} [options.url] 工作流基地址,必传
* @param {String} [options.netClsUrl] 网络类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/pathAnalyst
* @param {Geometry} [options.flagGeometry] 网标点序列,必传,必须为多点类型MutiPoint,
* @param {Number} [options.elementType] 添加网标方式,1:点,2:线,必传,例如:{"1":"点","2":"线"}
* @param {Geometry} [options.barrierGeometry] 障碍点序列,必传,必须为多点类型MutiPoint
* @param {Number} [options.nearDis] 容差,必传,例如:0.001
* @param {String} [options.analyTp] 分析模式,默认UserMode,必传,例如:{"UserMode":"UserMode","SysModeCommwayPrefer":"SysModeCommwayPrefer","SysModeHighWayPrefer":"SysModeHighWayPrefer","SysModeSysRecommend":"SysModeSysRecommend","SysModeMinCost":"SysModeMinCost","SysModeMinDis":"SysModeMinDis","SysModeMinTime":"SysModeMinTime"}
* @param {String} [options.weight] 权值,可为空,逗号分隔,例如:2,3
* @param {String} [options.outFormat] 输出格式,必传,例如:{"JSON":"JSON","XML":"XML"}
* @example
const workFlowServer600233 = WorkFlowServer.createWorkFlow({
url: "http://localhost:8089/igs/rest/services/workflow/600233/WorkflowServer",
netClsUrl: "gdbp://MapGISLocalPlus/sample/ds/网络分析/ncls/道路交通网",
flagGeometry: new Zondy.Geometry.MultiPoint({
coordinates: [
[114.45731, 38.017986],
[114.46711, 38.023956],
[114.44601, 38.031006],
[114.51202, 38.023586],
],
}),
elementType: 1,
barrierGeometry: new Zondy.Geometry.MultiPoint({
coordinates: [
[114.46147, 38.008148],
[114.43793, 38.014698],
[114.43784, 38.026852],
[114.45159, 38.026764],
],
}),
nearDis: 0.001,
analyTp: "UserMode",
outFormat: "JSON",
});
workFlowServer600233.execute({
method: Zondy.Enum.FetchMethod.get,
success: function (res) {
console.log("execute: ", res);
},
});
*/
class WorkFlowServer600233 extends WorkFlowServer {
constructor(options) {
super(options)
const opt = options || {}
/**
* @description 工作流基地址,必传
* @member {String} WorkFlowServer600233.prototype.url
* */
this.url = opt.url
/**
* @description 600233
* @member {Number} WorkFlowServer600233.prototype.flowId
* @readonly
* */
this.flowId = 600233
/**
* @description 路径分析
* @member {String} WorkFlowServer600233.prototype.description
* @readonly
* */
this.description = '路径分析'
/**
* @description 网络分析
* @member {String} WorkFlowServer600233.prototype.groupName
* @readonly
* */
this.groupName = '网络分析'
/**
* @description 网络类的URL,必传,例如:GDBP://mapgislocal/Sample/sfcls/pathAnalyst
* @member {String} WorkFlowServer600233.prototype.netClsUrl
* */
this.netClsUrl = opt.netClsUrl
/**
* @description 网标点序列,必传,必须为多点类型MutiPoint或者Polyline
* @member {Geometry} WorkFlowServer600233.prototype.flagGeometry
* */
this.flagGeometry = opt.flagGeometry
/**
* @description 添加网标方式,1:点,2:线,必传,例如:{"1":"点","2":"线"}
* @member {Number} WorkFlowServer600233.prototype.elementType
* */
this.elementType = opt.elementType
/**
* @description 障碍点序列,必传
* @member {Geometry} WorkFlowServer600233.prototype.barrierGeometry
* */
this.barrierGeometry = opt.barrierGeometry
/**
* @description 容差,必传,例如:0.001
* @member {Number} WorkFlowServer600233.prototype.nearDis
* */
this.nearDis = opt.nearDis
/**
* @description 分析模式,默认UserMode,必传,例如:{"UserMode":"UserMode","SysModeCommwayPrefer":"SysModeCommwayPrefer","SysModeHighWayPrefer":"SysModeHighWayPrefer","SysModeSysRecommend":"SysModeSysRecommend","SysModeMinCost":"SysModeMinCost","SysModeMinDis":"SysModeMinDis","SysModeMinTime":"SysModeMinTime"}
* @member {String} WorkFlowServer600233.prototype.analyTp
* */
this.analyTp = opt.analyTp
/**
* @description 权值,可为空,逗号分隔,例如:2,3
* @member {String} WorkFlowServer600233.prototype.weight
* */
this.weight = defaultValue(opt.weight, ',Weight1,Weight1')
/**
* @description 输出格式,必传,例如:{"JSON":"JSON","XML":"XML"}
* @member {String} WorkFlowServer600233.prototype.outFormat
* */
this.outFormat = opt.outFormat
}
/**
* @description 获取执行工作流check对象
* @private
* @return {Object}
*/
_getCheckQueryOpts() {
return {
netClsUrl: {
required: true,
type: 'String'
},
flagGeometry: {
required: true,
type: 'Geometry',
alias: 'flagPosStr',
process(v) {
return v.toString()
}
},
elementType: {
required: true,
type: 'Number'
},
barrierGeometry: {
required: true,
type: 'Geometry',
alias: 'barrierPosStr',
process(v) {
return v.toString()
}
},
nearDis: {
required: true,
type: 'Number'
},
analyTp: {
required: true,
type: 'String'
},
weight: {
type: 'String'
},
outFormat: {
required: true,
type: 'String'
}
}
}
}
export default WorkFlowServer600233