类名 common/service/igs/PoiServer.js
import BaseServer from '../BaseServer'
import { Zondy } from '../../base'

/**
 * 兴趣点服务,服务地址:/igs/rest/services/{folder}/{serviceName}/PoiServer
 * @class PoiServer
 * @moduleEx ServiceModule
 * @extends BaseServer
 * @param {Object} options 构造参数
 * @param {String} [options.url = 无] 服务基地址
 * @example
 * //初始化PoiServer服务对象
 * // ES5引入方式
 * const { PoiServer } = Zondy.Service
 * // ES6引入方式
 * import { PoiServer } from "@mapgis/webclient-common"
 *     const poiServer = new PoiServer({
 *       //服务基地址
 *       url: 'http://192.168.82.89:8089/igs/rest/services/兴趣点/PoiServer'
 *     })
 */
class PoiServer extends BaseServer {
  constructor(options) {
    super(options)
  }

  /**
   * @function PoiServer.prototype.queryPoi
   * @description 兴趣点查询,后端接口:/igs/rest/services/{serviceName}/PoiServer/search
   * @param options 查询参数
   * @param {Function} [options.success = 无] 查询成功回调函数,若使用Promise方式则不必填写
   * @param {Function} [options.failure = 无] 查询失败回调函数,若使用Promise方式则不必填写,若使用Promise方式则不必填写
   * @param {String} [options.keywords = 无] 查询关键字,keywords和type/typeCode两者至少必选其一)
   * @param {String} [options.typeCode = 无] poi分类代码,与type二选一
   * @param {String} [options.type = 无] poi分类汉字,与typeCode二选一
   * @param {Geometry} [options.geometry = 无] 几何过滤信息
   * @param {String} [options.city = 无] 查询城市,城市中文全拼,如:北京市,与cityCode、adCode三选一,填入此参数后,会尽量优先返回此城市数据,但是不一定仅局限此城市结果,若仅需要某个城市数据请调用cityLimit参数
   * @param {String} [options.cityCode = 无] 查询城市,cityCode,如:010
   * @param {String} [options.adCode = 无] 查询城市,adCode,如:110000
   * @param {Boolean} [options.cityLimit = false] 是否仅返回指定城市数据
   * @param {Number} [options.page = 1] 分页参数,页码,默认1
   * @param {Number} [options.pageSize = 25] 分页参数,每页大小,默认25
   * @returns {Promise<Object>}
   * @example
   * //回调方式
   * poiServer.queryPoi({
   *         keywords:'武汉',
   *         cityCode:'010',
   *         addCode:'110000',
   *         success: function (result) {
   *           console.log('请求成功:', result)
   *         }
   *       })
   * //promise方式
   * poiServer.queryPoi({
   *         keywords:'武汉',
   *         cityCode:'010',
   *         addCode:'110000',
   * }).then(function (result) {
   *   console.log('请求成功:', result);
   * }).catch(function (result) {
   *   console.log('请求失败:', result);
   * });
   */
  queryPoi(options) {
    // 设置PATH PARAMETERS校验
    const checkPathOpts = {}

    // 设置QUERY PARAMETERS校验
    const checkQueryOpts = {
      keywords: {
        type: 'String'
      },
      typeCode: {
        type: 'String'
      },
      type: {
        type: 'String'
      },
      geometry: {
        type: 'Geometry'
      },
      city: {
        type: 'String'
      },
      cityCode: {
        type: 'String'
      },
      adCode: {
        type: 'String'
      },
      cityLimit: {
        type: 'Boolean'
      },
      page: {
        type: 'Number'
      },
      pageSize: {
        type: 'Number'
      }
    }

    // 调用基类的查询信息方法
    return this._queryByParameters(
      options,
      checkPathOpts,
      checkQueryOpts,
      // 拼装返回基地址
      function (url) {
        return `${url}/search?f=json`
      }
    )
  }
}

Zondy.Service.PoiServer = PoiServer
export default PoiServer
构造函数
成员变量
方法
事件