    ﻿import {Zondy} from '../../common/Base';
    import {MapServiceBase}  from  "./MapServiceBase";
    import {IgsServiceBase}  from  "../../baseserver/IServiceBase";
    import {newGuid}  from  "../../common/Util";
    /**
     * 地图图片服务
     * @class module:地图服务.GetMapInfoService
     * @classdesc 地图信息服务
     * @description Zondy.Service.GetMapInfoService
     * @extends  Zondy.Service.MapServiceBase
     * @param {Object} option 属性键值对
     * @param {String} [option.mapName= null] 地图文档/瓦片地图名称
     * @param {Object} [option.guid= newGuid()] 唯一标识
     * @param {*} [option.token] 地图信息
     * @param {*} [option.type]  地图类型
     */
    class GetMapInfoService extends MapServiceBase {
        constructor(option) {
            var options = option || {};
            super(options);
            /**
             * @private
             * @member  Zondy.Service.GetMapInfoService.prototype.mapName
             * @type {String}
             * @description 地图文档/瓦片地图名称
             * @default null
             */
            this.mapName = options.mapName !== undefined ? options.mapName : null;

            /**
             * @private
             * @member  Zondy.Service.GetMapInfoService.prototype.mapName
             * @type {Object}
             * @description 唯一标识
             * @default newGuid()
             */
            this.guid = options.guid !== undefined ? options.guid : newGuid();

            /**
             * @private
             * @member  Zondy.Service.GetMapInfoService.prototype.token
             * @type {*}
             * @description 地图信息
             */
            this.token = options.token;

            /**
             * @private
             * @member  Zondy.Service.GetMapInfoService.prototype.type
             * @type {*}
             * @description 地图类型
             */
            this.type = options.type;
        }

        /**
         * 获取地图文档/瓦片地图信息
         * @function  Zondy.Service.GetMapInfoService.prototype.GetMapInfo
         * @param  {Function}  [onSuccess] 获取地图信息成功回调函数
         * @param  {Function}  [onError]  获取地图信息失败回调函数
         * @example
         //创建获取文档信息服务
         var mapInfo = new Zondy.Service.GetMapInfoService({
                        //发布的地图文档名称
                        mapName: 'WorldJWEdit',
                        //IP地址
                        ip: "develop.smaryun.com",
                        //端口号
                        port: "6163"
                    });
         //获取文档图片信息，getDataSuccess为回调函数
         mapInfo.GetMapInfo(function (res) {
                        console.log(res);
                    }, function (error) {
                        console.log(error);
                    });
         */
        GetMapInfo(onSuccess, onError) {
            var me = this;
            if (me.mapName) {
                me.partUrl = "info/" + this.mapName;
                var params = [];
                if (me.guid) {
                    params.push("guid=" + me.guid);
                }
                if (this.token) {
                    params.push("token=" + me.token);
                }
                if (this.type) {
                    params.push("type=" + me.type);
                }
                if (params.length > 0) {
                    me.partUrl += "?" + params.join('&');
                }
                var url = me.getFullUrl();
                var service = new IgsServiceBase(url, {
                    eventListeners: {
                        scope: me,
                        processCompleted: onSuccess,
                        processFailed: onError
                    }
                });
                service.processAsync();
            }
        }
    }
    export {GetMapInfoService};
    Zondy.Service.GetMapInfoService = GetMapInfoService;