100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 百度地图获取本地搜索(LocalSearch)全部结果并显示标注

百度地图获取本地搜索(LocalSearch)全部结果并显示标注

时间:2020-05-29 13:48:51

相关推荐

百度地图获取本地搜索(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

最后效果

参考文章:获取本地搜索全部结果

百度地图提供的接口

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。