import {
Zondy
} from '../../common/Base';
import {
GeometryAnalysisBase
} from "./GeometryAnalysisBase";
import {
IgsServiceBase
} from "../../baseserver/IServiceBase";
/**
* 三参数/七参数坐标转换
* @param {Object} option 属性键值对<br>
* @param {String} [option.points=x1,y1;x2,y2] 需要计算的点数组
* @param {String} [option.dx=] 中误差x
* @param {String} [option.dy=] 中误差y
* @param {String} [option.dz=] 中误差z
* @param {String} [option.m=] 七参数尺度因子
* @param {String} [option.wx=] 七参数wx
* @param {String} [option.wy=] 七参数wy
* @param {String} [option.wz=] 七参数wz
* @param {String} [option.srcsrsname=] 源坐标系名
* @param {String} [option.dessrsname=] 目标坐标系名
*/
class CoordinateElpTrans extends GeometryAnalysisBase {
constructor(option) {
var options = option ? option : {};
super(options);
/**
* @private
* @type {String}
* @description 坐标点
* @example x1,y1;x2,y2
* @default ""
*/
this.points = options.points !== undefined ? options.points : "";
/**
* @private
* @type {String}
* @description dx
* @default ""
*/
this.dx = options.dx !== undefined ? options.dx : "";
/**
* @private
* @type {String}
* @description dy
* @default ""
*/
this.dy = options.dy !== undefined ? options.dy : "";
/**
* @private
* @type {String}
* @description dz
* @default ""
*/
this.dz = options.dz !== undefined ? options.dz : "";
/**
* @private
* @type {String}
* @description 七参数尺度因子
* @default ""
*/
this.m = options.m !== undefined ? options.m : "";
/**
* @private
* @type {String}
* @description 七参数wx
* @default ""
*/
this.wx = options.wx !== undefined ? options.wx : "";
/**
* @private
* @type {String}
* @description 七参数wy
* @default ""
*/
this.wy = options.wy !== undefined ? options.wy : "";
/**
* @private
* @type {String}
* @description 七参数wz
* @default ""
*/
this.wz = options.wz !== undefined ? options.wz : "";
/**
* @private
* @type {String}
* @description srcsrsname
* @default ""
*/
this.srcsrsname = options.srcsrsname !== undefined ? options.srcsrsname : "";
/**
* @private
* @type {String}
* @description dessrsname
* @default ""
*/
this.dessrsname = options.dessrsname !== undefined ? options.dessrsname : "";
}
/**
* @function Zondy.Service.CoordinateTransform.prototype.coordinateTrans
* @description 执行三参数/七参数转换
* @param {callback} onSuccess 执行成功后的回调函数
* @param {callback} onError 执行失败后的回调函数
* @param {string} 请求方式
* @example localhost:6163/igs/rest/mrgs/geomservice/transcoordinate?points=411832,109867,0&dx=100&dy=100&dz=100&m=1&wx=100&wy=100&wz=100&srcsrsname=WGS1984_秒&dessrsname=地理坐标系(西安)_秒
*/
coordinateTrans(onSuccess, onError, type) {
var postObj = {};
if (type !== null && type.toUpperCase() === "POST") {
postObj.paraValues = "";
// this.partUrl = "execute/"+flowID+"?f="+this.f+"&isAsy="+isAsyStr+"&guid="+this.guid;
this.partUrl = "geomservice/transcoordinate?points=" + this.points + "&dx=" + this.dx + "&dy=" + this.dy + "&dz=" + this.dz + "&m=" + this.m + "&wx=" + this.wx + "&wy=" + this.wy + "&wz=" + this.wz + "&srcsrsname=" + this.srcsrsname + "&dessrsname=" + this.dessrsname
} else {
postObj = this;
this.partUrl = "geomservice/transcoordinate";
}
var url = this.getFullUrl();
var me = this;
var service = new IgsServiceBase(url, {
eventListeners: {
scope: me,
processCompleted: onSuccess,
processFailed: onError
}
});
if (type !== null && type.toUpperCase() === "POST") {
service.processAsync({
method: 'POST',
data: JSON.stringify(postObj)
});
}
else {
service.processAsync();
}
}
}
export {
CoordinateElpTrans
};
Zondy.Service.CoordinateTransform = CoordinateElpTrans;