百度地图获取本地搜索(LocalSearch)全部结果并显示标注
生活随笔
收集整理的這篇文章主要介紹了
百度地图获取本地搜索(LocalSearch)全部结果并显示标注
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
業務需求:獲取一定范圍內百度地圖中所有店面
(以下代碼實現的‘一定范圍’指圓,顯示某檢索值下所有地圖返回的店面)
?
var circle = new BMap.Circle(point,1000,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});map.addOverlay(circle);circle.disableMassClear();var ResultArray = [];var local1 = new BMap.LocalSearch(map,{renderOptions : {map : map,// panel : "content"},onMarkersSet:function (array) {console.log(array);},onInfoHtmlSet:function (LocalResultPoi) {console.log(LocalResultPoi);},onResultsHtmlSet:function (element) {console.log(element);},onSearchComplete : function(results) {// 需要獲取當前搜索總共有多少條結果var totalPages = results.getNumPages();var currPage = results.getPageIndex();// 獲取當前是第幾頁數據if (currPage <totalPages - 1) {console.log(results.getCurrentNumPois());ResultArray.push(...local1.getResults().Br);local1.gotoPage(currPage + 1); // 遍歷到最后一頁之后不再進行下一頁搜索,此時,已經獲取到全部的搜索結果,console.log(local1.getResults());} else {// 已經到達最后一頁結果ResultArray.push(...local1.getResults().Br);console.log(ResultArray);map.clearOverlays();for (var store of ResultArray){// console.log('dayin');var marker = new BMap.Marker(store.point);map.addOverlay(marker);}// alert("全部結果有:" + ResultArray.length + "------原本搜索結果有:" + results.getNumPois());}},pageCapacity : 50});local1.searchNearby('餐飲',point,1000);注:代碼里point,map沒有給,請用自己的。另外由于本人使用react,所以不提供完整代碼啦。(這只是測試用代碼實際使用請自行修改,還有就是大量標注點導致的卡頓問題...)
排坑:
local雖然提供了getResults方法,但在類參考中并沒有提供獲取當頁列表的方法。代碼中使用getResults().Br獲取,希望有會獲取的大佬分享下
建議每頁容量不要超過50
最后效果
參考文章:獲取本地搜索全部結果
百度地圖提供的接口
總結
以上是生活随笔為你收集整理的百度地图获取本地搜索(LocalSearch)全部结果并显示标注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DIY蓝牙键盘(2) - 理解HID报文
- 下一篇: Android——加速传感器(ACCEL