Source: QueryService.js

/*********************************************************************************
 Copyright © SuperMap. All rights reserved.
 Author: Will
 E-mail: pridehao@gmail.com
 
 **********************************************************************************/
import {NativeModules} from 'react-native';
let SS = NativeModules.JSQueryService;
import ServiceBase from './ServiceBase.js';
/**
 * @class QueryService
 * @param QueryMode.SqlQuery -  查询模式:SQL查询
 * @param QueryMode.FindNearest -  查询模式:最近地物查询
 * @param QueryMode.DistanceQuery - 查询模式:距离查询
 * @param QueryMode.SpatialQuery - 查询模式:空间查询
 * @param QueryMode.BoundsQuery - 范围查询:范围查询
 *
 */
export default class QueryService extends ServiceBase{
    constructor(){
        super();
        //同步子类Id和父类Id
        Object.defineProperty(this,"_SMQueryServiceId",{
                              get:function () {
                              return this._SMServiceBaseId
                              },
                              set:function (_SMQueryServiceId) {
                              this._SMServiceBaseId = _SMQueryServiceId;
                              }
                              })
    }
    /**
     * 根据查询路径创建一个QueryService对象
     * @memberOf QueryService
     * @param url
     * @returns {Promise.<QueryService>}
     */
    async createObj(url) {
        try {
            var {_queryServiceId_} = await SS.createObj(url);
            var queryService = new QueryService();
            queryService._SMQueryServiceId = _queryServiceId_;
            return queryService;
        } catch (e) {
            console.error(e);
        }
    }

    /**
     * 对Rest地图服务进行查询。
     * @deprecated
     * @memberOf QueryService
     * @param serviceQueryParameter - 查询参数{@ling QueryParameter}。
     * @param mode - 查询模式QueryMode
     * @returns {Promise.<*>}
     */
    async query(serviceQueryParameter, mode) {
        try {
            await SS.query(this._SMQueryServiceId,
                serviceQueryParameter._SMServiceQueryParameterId, mode);
            return queryService;
        } catch (e) {
            console.error(e);
        }
    }

    /**
     * 对Rest地图服务进行查询。
     * @deprecated
     * @memberOf QueryService
     * @param url - 地图服务的全地址 :如:http://192.168.120.1:8090/iserver/services/map-world/rest/maps/World。
     * @param serviceQueryParameter - 查询参数。
     * @param mode - 查询模式。
     * @returns {Promise.<*>}
     */
    async queryByUrl(url, serviceQueryParameter, mode) {
        try {
            await SS.queryByUrl(this._SMQueryServiceId, url,
                serviceQueryParameter._SMServiceQueryParameterId, mode);
            return queryService;
        } catch (e) {
            console.error(e);
        }
    }
}