LocalSearch

用于位置检索、周边检索和范围检索。

构造函数

  • 创建搜索实例

    参数类型说明
    locationstring检索区域,可以是地图实例、坐标点或城市名称字符串
    opts 可选LocalSearchOptions可选参数
    属性类型说明
    onInfoHtmlSetFunction标注气泡内容创建后的回调函数
    onMarkersSetFunction标注添加完成后的回调函数
    onResultsHtmlSetFunction结果列表添加完成后的回调函数
    onSearchCompleteFunction检索完成后的回调函数
    pageCapacitynumber每页容量,取值范围 1 - 100。多关键字检索时为每个关键字的返回数量
    pageNumnumber起始页码,从 0 开始
    renderOptionsRenderOptions结果呈现设置

    返回值 LocalSearch

    示例代码1

    // 设置 renderOptions.map,标注自动渲染到地图上
    const localSearch = new BMap.LocalSearch(map, {
    renderOptions: { map: map, autoViewport: true },
    onSearchComplete(results) {
    console.log('标注已自动绘制到地图');
    },
    });
    localSearch.search('餐厅');

    示例代码2

    // 设置展示面板 + viewportOptions.margins 避免面板遮挡聚焦区域
    const localSearch = new BMap.LocalSearch(map, {
    renderOptions: {
    map: map,
    panel: 'search-panel',
    autoViewport: true,
    viewportOptions: { margins: [20, 20, 20, 300] },
    },
    onSearchComplete(results) {
    console.log('检索完成,结果面板已展示');
    },
    });
    localSearch.search('超市');

    示例代码3

    // 纯回调用法,不自动渲染到地图
    const localSearch = new BMap.LocalSearch(map, {
    onSearchComplete(results) {
    if (localSearch.getStatus() === 0) {
    console.log('结果数量:', results.getCurrentNumPois());
    }
    },
    });
    localSearch.search('咖啡');

方法

  • 清除最近一次检索的结果,同时清除地图上的标注和结果面板

    返回值 void

  • 禁用根据结果自动调整地图视野

    返回值 void

  • 禁用自动选择第一个检索结果

    返回值 void

  • 启用根据结果自动调整地图视野

    返回值 void

  • 启用自动选择第一个检索结果

    返回值 void

  • 返回每页容量

    返回值 number

  • 返回当前页码

    返回值 number

  • 跳转到指定页的检索结果,页码无效时触发 onSearchComplete 并设状态为 INVALID_REQUEST

    参数类型说明
    pagenumber页码,从 0 开始,最大为 getNumPages() - 1

    返回值 void

    示例代码1

    localSearch.gotoPage(2);
    
  • 根据检索词发起检索,支持数组形式的多关键字(最多10个)

    参数类型说明
    keywordstring检索关键字或关键字数组
    option 可选LocalSearchSearchOption附加选项

    返回值 void

    示例代码1

    localSearch.search('餐厅');
    

    示例代码2:多关键字检索

    localSearch.search(['咖啡', '甜品']);
    

    示例代码3:强制在当前城市搜索

    localSearch.search('火锅', { forceLocal: true });
    
  • 根据范围和检索词发起范围检索,支持多关键字

    参数类型说明
    keywordstring检索关键字或关键字数组
    boundsBounds检索范围

    返回值 void

    示例代码1

    const bounds = new BMap.Bounds(
    new BMap.Point(116.380, 39.900),
    new BMap.Point(116.430, 39.930)
    );
    localSearch.searchInBounds('超市', bounds);
  • 根据中心点、半径与检索词发起周边检索,支持多关键字

    参数类型说明
    keywordstring检索关键字或关键字数组
    centerstring中心点,可以是 LocalResultPoi、城市名称字符串或坐标点
    radiusnumber检索半径,单位米(默认2000,最大100000),center 为字符串时忽略此参数

    返回值 void

    示例代码1

    localSearch.searchNearby('银行', new BMap.Point(116.404, 39.915), 2000);
    
  • 设置标注气泡创建时的回调函数

    参数类型说明
    callback(poi: LocalResultPoi, html: HTMLElement) => void回调函数

    返回值 void

    示例代码1

    localSearch.setInfoHtmlSetCallback((poi, html) => {
    console.log('气泡已创建', poi.title, html);
    });
  • 设置检索区域

    参数类型说明
    locationstring地图实例、坐标点或城市名称字符串

    返回值 void

    示例代码1

    localSearch.setLocation('上海');
    
  • 设置标注添加完成后的回调函数

    参数类型说明
    callback(pois: LocalResultPoi[]) => void回调函数

    返回值 void

    示例代码1

    localSearch.setMarkersSetCallback((pois) => {
    pois.forEach(poi => console.log(poi.title, poi.marker));
    });
  • 设置每页容量,超出范围时重置为默认值 10

    参数类型说明
    capacitynumber每页容量,取值范围 1 - 100

    返回值 void

    示例代码1

    localSearch.setPageCapacity(20);
    
  • 设置起始页码

    参数类型说明
    pageNumnumber页码,从 0 开始,无效值时重置为 0

    返回值 void

  • 设置结果列表创建后的回调函数

    参数类型说明
    callback(container: HTMLElement) => void回调函数

    返回值 void

    示例代码1

    localSearch.setResultsHtmlSetCallback((container) => {
    console.log('结果列表已创建', container);
    });
  • 设置检索结束后的回调函数

    参数类型说明
    callback(results: LocalResult | LocalResult[]) => void回调函数

    返回值 void

    示例代码1

    localSearch.setSearchCompleteCallback((results) => {
    console.log('检索完成', results);
    });