Igserver/MRGS/ProjectRang.js Source
import {
    Zondy
} from '../../common/Base';
import {
    GeometryAnalysisBase
} from "./GeometryAnalysisBase";
import {
    IgsServiceBase
} from "../../baseserver/IServiceBase";

/**
 * 对矩形范围坐标点进行投影转换
 * @class  module:几何分析服务.ProjectRang
 * @classdesc 对矩形范围坐标点进行投影转换
 * @description Zondy.Service.ProjectRang
 * @extends Zondy.Service.GeometryAnalysisBase
 * @param {Object} option 属性键值对
 * @param {String} [option.gdbsvrName = "MapGISLocal"] 数据源名称
 * @param {String} [option.gdbName = null] 数据库名称
 * @param {Number} [option.srefID = 0] 源投影参考系ID
 * @param {Number} [option.desfID = 0] 目的投影参考系ID
 * @param {String} [option.userName = null] 地理数据源/地理数据库账户名
 * @param {String} [option.password = null] 地理数据源/地理数据库密码
 * @example
 //需要投影转换的矩形
 var rectangle = new Zondy.Object.Rectangle(2119075.5815982167, -8944857.387927618, -1350086.1660772718, 3477202.6583427647);
 //对矩形范围坐标点进行投影转换
 var ProjectRang = new Zondy.Service.ProjectRang({
                    //数据源名称,默认值为"MapGISLocal"
                    gdbsvrName: "MapGISLocal",
                    //数据库名称
                    gdbName: "OpenLayerVecterMap",
                    //源投影参考系ID
                    srefID: 10,
                    //目的投影参考系ID
                    desfID: 601,
                    //服务器地址
                    ip: "develop.smaryun.com",
                    //服务器端口
                    port: "6163"
                });
 ProjectRang.execute(rectangle, function (res) {
                    console.log(res);
                }, function (error) {
                    console.log(error);
                });
 */
class ProjectRang extends GeometryAnalysisBase {
    constructor(option) {
        var options = option ? option : {};
        super(options);

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.gdbsvrName
         * @type {String}
         * @description 数据源名称
         * @default MapGISLocal
         */
        this.gdbsvrName = options.gdbsvrName !== undefined ? options.gdbsvrName : "MapGISLocal";

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.gdbName
         * @type {String}
         * @description 数据库名称
         * @default null
         */
        this.gdbName = options.gdbName !== undefined ? options.gdbName : null;

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.srefID
         * @type {Number}
         * @description 源投影参考系ID
         * @default 0
         */
        this.srefID = options.srefID !== undefined ? options.srefID : 0;

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.desfID
         * @type {Number}
         * @description 目的投影参考系ID
         * @default 0
         */
        this.desfID = options.desfID !== undefined ? options.desfID : 0;

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.userName
         * @type {String}
         * @description 地理数据源/地理数据库账户名
         * @default null
         */
        this.userName = options.userName !== undefined ? options.userName : null;

        /**
         * @private
         * @member Zondy.Service.ProjectRang.prototype.password
         * @type {String}
         * @description 地理数据源/地理数据库密码
         * @default null
         */
        this.password = options.password !== undefined ? options.password : null;
    }

    /**
     * @function Zondy.Service.ProjectRang.prototype.execute
     * @description 执行点投影
     * @param {Object} rectangle {xmin, xmax, ymin, ymax}
     * @param {callback} onSuccess 执行成功后的回调函数
     * @param {callback} onError 执行失败后的回调函数
     */
    execute(rectangle, onSuccess, onError) {
        var rang = "";
        if (rectangle) {
            rang = rectangle.xmin + "$" + rectangle.ymin + "$" + rectangle.xmax + "$" + rectangle.ymax;
        }
        if (this.userName === null || this.password === null) {
            this.partUrl = "geomservice/" + this.gdbsvrName + "/" + this.gdbName + "/" + this.srefID + "/" + this.desfID + "?f=json&rang=" + rang;
        } else {
            this.partUrl = "geomservice/" + this.gdbsvrName + "/" + this.gdbName + "/" + this.srefID + "/" + this.desfID + "?f=json&rang=" + rang + "&userName=" + this.userName + "&password=" + this.password;
        }
        var url = this.getFullUrl();
        var me = this;
        var service = new IgsServiceBase(url, {
            eventListeners: {
                scope: me,
                processCompleted: onSuccess,
                processFailed: onError
            }
        });
        service.processAsync();
    }

}
export {
    ProjectRang
};
Zondy.Service.ProjectRang = ProjectRang;