LocalSearch
用于位置检索、周边检索和范围检索。
构造函数
| 构造函数 | 描述 |
|---|---|
| BMapGL.LocalSearch(location: Map | Point | String, opts?: object) | 创建一个搜索类实例,其中location表示检索区域,其类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由当前地图中心点确定,且搜索结果的标注将自动加载到地图上,并支持调整地图视野层级;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行 |
配置选项
| 属性 | 类型 | 描述 |
|---|---|---|
| renderOptions | LocalRenderOptions | 结果呈现设置 |
| onMarkersSet | Function | 标注添加完成后的回调函数。参数:pois: Array,通过marker属性可得到其对应的标注 |
| onInfoHtmlSet | Function | 标注气泡内容创建后的回调函数。参数:poi: LocalResultPoi,通过其marker属性可得到当前的标注。html: HTMLElement,气泡内的Dom元素 |
| onResultsHtmlSet | Function | 结果列表添加完成后的回调函数。参数:container: HTMLElement,结果列表所用的HTML元素 |
| pageCapacity | Number | 设置每页容量,取值范围:1 - 100,对于多关键字检索,容量表示每个关键字的数量,如果有2个关键字,则实际检索结果数量范围为:2 - 200 |
| onSearchComplete | Function | 检索完成后的回调函数。参数:results: LocalResult或Array 如果是多关键字检索,回调函数参数返回一个LocalResult的数组,数组中的结果顺序和检索中多关键字数组中顺序一致 |
方法
| 方法名 | 参数 | 返回值 | 描述 |
|---|---|---|---|
| search | keyword: String | Array<String>, option: Object | none | 根据检索词发起检索。当keyword为数组时将同时执行多关键字的查询,最多支持10个关键字,多关键字自 1.2 版本支持。option:{forceLocal:Boolean, customData:CustomData} forceLocal表示是否将搜索范围约束在当前城市,customData表示检索lbs云服务的数据 |
| searchInBounds | keyword: String | Array<String>, bounds: Bounds, option: Object | none | 根据范围和检索词发起范围检索。当keyword为数组时将同时执行多关键字检索,最多支持10个关键字,多关键字自 1.2 版本支持。option:{customData:CustomData} customData表示检索lbs云服务的数据 |
| searchNearby | keyword: String | Array<String>, center: LocalResultPoi | String | Point, radius: Number, option: Object | none | 根据中心点、半径与检索词发起周边检索。当keyword为数组时将同时执行多关键字的检索,最多支持10个关键字,多关键字自 1.2 版本支持。当center为字符串时,半径参数将忽略。注意:Point类型的中心点自 1.1 版本支持。option:{customData:CustomData} customData表示检索lbs云服务的数据 |
| getResults | 无 | LocalResult | Array<LocalResult> | 返回最近一次检索的结果。如果是多关键字范围检索,则返回一个LocalResult的数组,数组中的结果顺序和范围检索中多关键字数组中顺序一致 |
| clearResults | 无 | none | 清除最近一次检索的结果 |
| gotoPage | page: Number | none | 检索特定页面的结果 |
| enableAutoViewport | 无 | none | 启用根据结果自动调整地图层级,当指定了搜索结果所展现的地图时有效 |
| disableAutoViewport | 无 | none | 禁用根据结果自动调整地图层级 |
| enableFirstResultSelection | 无 | none | 启用自动选择第一个检索结果 |
| disableFirstResultSelection | 无 | none | 禁用自动选择第一个检索结果 |
| setLocation | location: Map | Point | String | none | 设置检索范围,参数类型可以为地图实例、坐标点或字符串。例:setLocation("北京市") |
| setPageCapacity | 无 | none | 设置每页容量,取值范围:1 - 100,对于多关键字检索,每页容量表示每个关键字返回结果的数量(例如当用2个关键字检索时,实际结果数量范围为:2 - 200)。此值只对下一次检索有效 |
| getPageCapacity | 无 | Number | 返回每页容量,对于多关键字检索,返回每个关键字对应的页面容量 |
| setSearchCompleteCallback | 无 | none | 设置检索结束后的回调函数。参数:results: LocalResult 或 Array 如果是多关键字检索,回调函数参数为LocalResult的数组,数组中的结果顺序和检索中多关键字数组中顺序一致 |
| setMarkersSetCallback | callback: Function | none | 设置添加标注后的回调函数。参数:pois: Array,通过marker属性可得到其对应的标注 |
| setInfoHtmlSetCallback | callback: Function | none | 设置标注气泡创建时的回调函数。参数:poi: LocalResultPoi,通过其marker属性可得到当前的标注。html: HTMLElement,气泡内的Dom元素 |
| setResultsHtmlSetCallback | callback: Function | none | 设置结果列表创建后的回调函数。参数:container: HTMLElement,结果列表所用的HTML元素 |
| getStatus | 无 | StatusCodes | 返回状态码 |
示例
ts
// 创建搜索实例
const localSearch = new BMapGL.LocalSearch(map, {
renderOptions: {
map: map,
panel: "results"
},
onSearchComplete: function(results) {
if (localSearch.getStatus() == BMAP_STATUS_SUCCESS) {
// 检索成功
console.log('检索结果:', results);
}
}
});
// 搜索关键词
localSearch.search('餐厅');
// 周边搜索
localSearch.searchNearby('餐厅', new BMapGL.Point(116.404, 39.915), 1000);
// 范围搜索
const bounds = new BMapGL.Bounds(
new BMapGL.Point(116.404, 39.915),
new BMapGL.Point(116.405, 39.916)
);
localSearch.searchInBounds('餐厅', bounds);