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