百度地图之检索服务

988 阅读1分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

关键字本地搜

  • 创建一个搜索类实例,其中location表示检索区域,其类型可为地图实例、坐标点或城市名称的字符串。当参数为地图实例时,检索位置由当前地图中心点确定,且搜索结果的标注将自动加载到地图上,并支持调整地图视野层级;当参数为坐标时,检索位置由该点所在位置确定;当参数为城市名称时,检索会在该城市内进行
  • search(keyword: String | Array) 根据检索词发起检索。当keyword为数组时将同时执行多关键字的查询,最多支持10个关键字
var map = new BMapGL.Map("container");
var point = new BMapGL.Point(116.403963,39.915119);
map.centerAndZoom(point, 15); 
map.enableScrollWheelZoom(true);
var local = new BMapGL.LocalSearch(map, {
    renderOptions:{map: map}
});
local.search("公园")

Snipaste_2021-08-04_11-11-38.png

多关键字搜索

不仅可以支持单关键字还可以支持多关键字搜索嗷~
  • searchInBounds根据范围和检索词发起范围检索。当keyword为数组时将同时执行多关键字检索,最多支持10个关键字,多关键字自 1.2 版本支持
var myKeys = ["串串店", "火锅店"];
var local = new BMapGL.LocalSearch(map, {
        renderOptions:{map: map, panel:"r-result"},
        pageCapacity:5
});
local.searchInBounds(myKeys, map.getBounds());
干饭人少不了串串,火锅嗷~

Snipaste_2021-08-04_11-18-01.png

区域内关键词

  • bounds 构造函数 Bounds(sw: point ne:point)
var pStart = new BMapGL.Point(116.274625,39.961627);
var pEnd = new BMapGL.Point(116.367474,39.988609);
var bs = new BMapGL.Bounds(pStart,pEnd);   //自己规定范围
local.searchInBounds("饭店", bs);
var polygon = new BMapGL.Polygon([
        new BMapGL.Point(pStart.lng,pStart.lat),
        new BMapGL.Point(pEnd.lng,pStart.lat),
        new BMapGL.Point(pEnd.lng,pEnd.lat),
        new BMapGL.Point(pStart.lng,pEnd.lat)
        ], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polygon);

Snipaste_2021-08-04_11-27-49.png