js中百度地图API获取本地搜索全部结果自定义显示效果
生活随笔
收集整理的這篇文章主要介紹了
js中百度地图API获取本地搜索全部结果自定义显示效果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近碰到一個關于百度地圖api的問題:
1、首先我需要獲取到一個本地搜索的全部結果;
2、然后需要對獲取的結果信息進行讀取以及對這些信息的個性化展示
大致操作如下,首先通過result.getNumPois()獲取本次搜索全部結果記錄數,但是這個結果無法直接全部取到,因為通過getPoi(index)方法只能獲取當前頁面的幾條數據,所以,我們需要考慮如何將當前頁面改變,能達到遍歷結果所有頁面數據的效果,但是很無奈,百度給的api并沒有這樣的方法。經過千辛萬苦,各種百度查詢,終于找到一種方式,就是在每次獲取一個頁面的數據之后,需要使用LocalSearch的gotoPage(PageIndex)重新調處下一頁的數據。
大致代碼結構如下。
var local1 = new BMap.LocalSearch(map,{renderOptions : {map : map,// panel : "resultDiv"},onSearchComplete : function(results) {// 需要獲取當前搜索總共有多少條結果var totalResults = results.getNumPois(); var totalPages = results.getNumPages();var currPage = results.getPageIndex();// 獲取當前是第幾頁數據// alert("totalResults:" + totalResults);for (i = 0; i < results.getCurrentNumPois(); i++) {//resultArray[50 * currPage + i] = results.getPoi(i);//在當前頁面下獲取頁面中的內容}if (results.getPageIndex() < results.getNumPages() - 1) { local1.gotoPage(results.getPageIndex() + 1); // 遍歷到最后一頁之后不再進行下一頁搜索,此時,已經獲取到全部的搜索結果, } else {// 已經到達最后一頁結果 alert("全部結果有:" + resultArray.length + "------原本搜索結果有:" + results.getNumPois()); //本實例中是要使用resultArray存儲所有檢索結果,在此else分支對存儲的結果數據進行頁面展示 }},pageCapacity : 50});local1.searchNearby('景點', pp, 2000);
這樣,我可以對檢索結果進行布局設置,控制顯示格式,添加動作響應等比較復雜的操作。
//注,代碼片段無法直接運行,需要根據實際進行修飾才能使用。
總結
以上是生活随笔為你收集整理的js中百度地图API获取本地搜索全部结果自定义显示效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言进行数据统计分析的研究报告,统计分
- 下一篇: 预测股市?echart折线图展示CPI,