日期:2014-05-16  浏览次数:20361 次

百度地图 Javascript API 遍历搜索结果

API文档:http://developer.baidu.com/map/jshome.htm

但说明不够详细,这里给出一个遍历搜索结果的完整实例。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>

(1) 这里需要引用百度地图的API,官方文档

    <title>百度地图</title>
</head>
<body style="overflow: scroll">
        <div id="allmap" style="height: 100px"></div>
(2)定义保存地图的页面元素
</body>
</html>
<script type="text/javascript">
    var map = new BMap.Map("allmap");             
    var point = new BMap.Point(116.404, 39.915);     
    map.centerAndZoom(point, 12);                      
    map.enableScrollWheelZoom();                            
</script>

(3) 创建地图对象,并进行初始化,初始化是必要的,否则不能进行任何操作。

<script type="text/javascript">
    var ls = new BMap.LocalSearch(map);
    // 定义每一页结果加载完成的回调函数
    function onSearchComplete(result) {
        var n = result.getNumPois();
        var tab = document.getElementById("courtList");
        var msg = document.getElementById("errMsg");
        var i = 0;

        for (i = 0; i < result.getCurrentNumPois() ; i++) {
            var tr = tab.insertRow(tab.rows.length);
            var poi = result.getPoi(i);

            tr.insertCell(0).innerText = i + ls.getPageCapacity() * result.getPageIndex();
            tr.insertCell(1).innerText = poi.title;
            tr.insertCell(2).innerText = poi.point.lng;
            tr.insertCell(3).innerText = poi.point.lat;
            tr.insertCell(4).innerText = poi.phoneNumber;
            tr.insertCell(5).innerText = poi.address;
            tr.insertCell(6).innerText = poi.tags;
        }
        // 判断是否到最后一页,如果是则不再搜索
        if (result.getPageIndex() < result.getNumPages() - 1)
            ls.gotoPage(result.getPageIndex() + 1);
    }

    ls.setSearchCompleteCallback(onSearchComplete);
    ls.setPageCapacity(100);
    ls.search("关键词");
</script>
(4) 定义搜索。调用LocalSearch.search方法后只给出第一页的结果,如果要进行后续的查找必须 使用 LocalSearch.gotoPage再次获取,每页结果加载完成都会调用回调函数