日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 百度地图获取本地搜索(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)全部结果并显示标注的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。