    import { Zondy } from '../../common/Base';
    import { DataStoreService } from '../ServiceBase';

    /**
     * @author 创新中心-潘卓然
     * @class module:弹性搜索服务.EsGeocodeService
     * @param gdbp 发布在igs上的pg图层gdbp地址，可以从中解析libName（数据库名）、schemas（工作空间名）、tableName（表名）
     * @param {EsGeocodeParameter} option 查询条件
     * @param {Boolean} [option.includeProperites = true] 查询结果中是否包含属性
     * @param {String} [option.where] 属性条件 （例如：id>5,id<10）
     * @param {String} [option.fields] 统计计算中用于分组字段名列表
     * @param {String} [option.geometry] 几何信息，圆、多边形等
     * @param {String} [option.geoFormat="wkt"] 几何类型，wkt、wkb、geojson、自定义等
     * @param {String} [option.sref] 动态投影坐标系 ID，支持 MapGIS 和 EPSG 标准编号，其中 MapGIS 只支持当前库中自带的坐标系的 ID，EPSG 标准请 使用 EPSG:4326 格式，若指定了该参数，则系统认为 geometry 的坐标系为此坐标系
     */
    export default class EsGeocodeService extends DataStoreService {
        constructor(option) {
            super(option);

            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.includeProperites
             * @description 查询结果中是否包含属性
             * @type Boolean
             * @default true
             */
            this.includeProperites = option.includeProperites;
            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.where
             * @description 属性条件 （例如：id>5,id<10）
             * @type String
             */
            this.where = option.where;
            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.fields
             * @description 统计计算中用于分组字段名列表
             * @type String
             */
            this.fields = option.fields;
            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.geometry
             * @description 几何信息，圆、多边形等
             * @type String
             */
            this.geometry = option.geometry;
            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.geoFormat
             * @description 几何类型，wkt、wkb、geojson、自定义等
             * @type String
             */
            this.geoFormat = option.geoFormat;
            /**
             * @member  module:弹性搜索服务.EsGeocodeService.prototype.sref
             * @description 动态投影坐标系 ID，支持 MapGIS 和 EPSG 标准编号，
             * 其中 MapGIS 只支持当前库中自带的坐标系的 ID，EPSG 标准请 使用 EPSG:4326 格式，
             * 若指定了该参数，则系统认为 geometry 的坐标系为此坐标系
             * @type String
             */
            this.sref = option.sref;
        }
        /**
         * @description 查询函数，向服务器发送请求,返回地名地址格式数据
         * @function module:弹性搜索服务.EsGeocodeService.prototype.query
         * @param  {Function} onSuccess 查询成功回调函数。
         * @param {Function} onError 查询失败回调函数。
         */
        query(onSuccess, onError) {
            let { serviceUrl, options } = this;
            let url = this.getFullUrl(serviceUrl, options);
            this.get(url, onSuccess, onError);
        }
    }