import { BaseWidget, EventHandler } from '../../core'; import { PlaceSearchOptions } from '../../types'; /** * 地点检索事件中的 POI 数据 * 在 load、select 事件回调中传入,仅包含约定字段,便于业务使用。 * @category 类型 */ export interface PlaceSearchEventPoi { /** 名称/标题 */ title: string; /** 地址 */ address: string; /** 地点唯一标识,可用于拉取详情 */ uid?: string; /** 坐标点(BMapGL.Point) */ point?: BMapGL.Point; /** 电话 */ tel?: string; } /** * 地点检索组件 * 支持关键字检索、周边检索、范围检索,结果以列表展示,可翻页;通过 on('load' | 'select') 监听结果与选中项。 * @category 功能 */ export declare class PlaceSearch extends BaseWidget { private readonly options; private listWrap; /** 内部保留原始数据,用于 UI 展示与点击时取同一条 */ private lastResult; /** 当前页码(0 基) */ private currentPage; /** 上次检索参数,翻页时用 */ private lastQuery; /** * @param container 挂载容器选择器或 DOM 元素 * @param options 配置项,map 必传 */ constructor(container: string | HTMLElement, options: PlaceSearchOptions); /** * 关键字检索 * @param keyword 检索关键词 * @param option 可选,如 city 限定城市 */ search(keyword: string, option?: { city?: string; }): Promise; /** * 周边检索 * @param keyword 检索关键词 * @param center 中心点坐标 * @param radius 半径(米),默认 2000 */ searchNearby(keyword: string, center: BMap.Point | BMapGL.Point, radius?: number): Promise; /** * 范围检索(在指定矩形范围内检索) * @param keyword 检索关键词 * @param bounds 西南角 sw、东北角 ne 坐标 */ searchInBounds(keyword: string, bounds: { sw: BMapGL.Point; ne: BMapGL.Point; }): Promise; /** 上一页(仅在已有检索结果且当前页大于 1 时有效) */ prevPage(): void; /** 下一页(沿用上次检索条件请求下一页) */ nextPage(): void; /** * 跳转到指定页 * @param page 页码,从 1 开始 */ goToPage(page: number): void; /** * 监听事件,支持 `load`、`select` 事件 * @param event 事件名 * @param handler 事件处理函数 * @returns 组件实例 */ on(event: 'load' | 'select', handler: EventHandler): this; /** * 移除事件监听,支持 `load`、`select` 事件 * @param event 事件名 * @param handler 可选,要移除的回调;不传则移除该事件的全部监听 * @returns 组件实例 */ off(event: 'load' | 'select', handler?: EventHandler): this; destroy(): void; protected render(): void; private getServiceOpts; private runLastQuery; private handleSearchComplete; private renderResults; private onItemClick; }