浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

JavaScript API

百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。免费对广大用户开放。

简介
检索服务提供某一特定地区的兴趣点位置查询服务(POI:Point of Interest,感兴趣点)。允许设置检索城市、检索圆形区域内POI、检索矩形区域内POI、检索结果详情。
提供的检索服务

LocalSearch:本地搜索,提供某一特定地区的位置搜索服务,比如在北京市搜索“公园”。目前支持城市检索、圆形检索、矩形检索。详情可见类参考

说明:BMap.LocalSearch提供本地搜索服务,在使用本地搜索时需要为其设置一个检索区域,检索区域可以是BMap.Map对象、BMap.Point对象或者是省市名称(比如:"北京市")的字符串。BMap.LocalSearch构造函数的第二个参数是可选的,您可以在其中指定结果的呈现。BMap.RenderOptions类提供了若干控制呈现的属性,其中map指定了结果所展现的地图实例,panel指定了结果列表的容器元素。
检索POI方法
检索POI服务提供三种检索方法:城市检索、圆形区域检索、矩形区域检索。
1城市检索
search方法提供根据关键字检索特定POI信息服务。 如下示例,为根据关键字“天安门”检索POI:
var map = new BMap.Map("container");      
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);      
var local = new BMap.LocalSearch(map, {      
    renderOptions:{map: map}      
});      
local.search("天安门");
2圆形区域检索
searchNearby方法提供圆形区域检索服务。您可以在某个地点附近进行搜索,也可以在某一个特定结果点周围进行搜索。 下面示例展示如何在前门附近搜索小吃:
var map = new BMap.Map("container");         
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);      
var local = new BMap.LocalSearch(map,   
              { renderOptions:{map: map, autoViewport: true}});      
local.searchNearby("小吃", "前门");   
3矩形区域检索
searchInBounds方法提供矩形区域检索服务。矩形范围搜索将根据您提供的视野范围提供搜索结果。

注意:当搜索范围过大时可能会出现无结果的情况。

如下示例,展示在当前地图视野范围内搜索银行:
var map = new BMap.Map("container");        
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14);      
var local = new BMap.LocalSearch(map,   
              { renderOptions:{map: map}});      
local.searchInBounds("银行", map.getBounds());   
配置搜索

BMap.LocalSearch提供了若干配置方法,通过它们可以自定义搜索服务的行为以满足您的需求。

如下示例中,我们调整每页显示8个结果,并且根据结果点位置自动调整地图视野,不显示第一条结果的信息窗口:
var map = new BMap.Map("container");    
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14);  
var local = new BMap.LocalSearch("北京市",   
            {renderOptions: {map: map,autoViewport: true},pageCapacity: 8});      
local.search("中关村");
结果面板

通过设置BMap.LocalSearchOptions.renderOptions.panel属性,可以为本地搜索对象提供一个结果列表容器,搜索结果会自动添加到容器元素中。

如下示例:
var map = new BMap.Map("container");     
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  
var local = new BMap.LocalSearch(map,   
            {renderOptions: {map: map,panel: "results"});      
local.search("中关村");
数据接口

除了搜索结果会自动添加到地图和列表外,您还可以通过数据接口获得详细的数据信息,结合地图API您可以自行向地图添加标注和信息窗口。

BMap.LocalSearch和BMap.LocalSearchOptions类提供了若干设置回调函数的接口,通过它们可得到搜索结果的数据信息。 例如,通过onSearchComplete回调函数参数可以获得BMap.LocalResult对象实例,它包含了每一次搜索结果的数据信息。 当回调函数被执行时,您可以使用BMap.LocalSearch.getStatus()方法来确认搜索是否成功或者得到错误的详细信息。

在下面这个示例中,通过onSearchComplete回调函数得到第一页每条结果的标题和地址信息,并输出到页面上:
var map = new BMap.Map("container");          
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);      
var options = {      
    onSearchComplete: function(results){      
        if (local.getStatus() == BMAP_STATUS_SUCCESS){      
            // 判断状态是否正确      
            var s = [];      
            for (var i = 0; i < results.getCurrentNumPois(); i ++){      
                s.push(results.getPoi(i).title + ", " + results.getPoi(i).address);      
            }      
            document.getElementById("log").innerHTML = s.join("<br>");      
        }      
    }      
 };      
var local = new BMap.LocalSearch(map, options);      
local.search("公园");