首页 > 其他分享 >百度地图地址搜索

百度地图地址搜索

时间:2023-02-25 15:34:20浏览次数:32  
标签:map const val point value 地址 搜索 new 百度

--Vue页面html 

 <!--<div id="work_map"></div>-->

    <div class="div-fenrig">       <el-input v-model="addrkeyword" placeholder="请输入查询地址" />       <el-button         link         type="primary"         size="small"         @click.prevent="funSearch"       >         查询       </el-button>     </div>     <div class="div-renshowtxt" v-if="isshowtxt">       <div class="div-img-wh"><svg-icon name="close-small" class="card-icon" @click="closeText"/></div>       <el-row>         <el-col :lg="24" v-for="(item,index) in addrinfodata" style="padding-bottom: 10px;" @click="showTxtPosition(item)">           <el-row :class="item.ckecktxt?'ckTxt-res':''">             <el-col :lg="2"><div>{{ String.fromCharCode(65+index) }}</div></el-col>             <el-col :lg="11"><div class="title">{{ item.title}}</div></el-col>             <el-col :lg="11"><div>地址:<span class="rout">{{ item.address}}</span></div></el-col>           </el-row>         </el-col>       </el-row>     </div>   --页面js <script setup> //必须引用百度地图pai //加载地图 const map = ref(); const initMap = () => {   map.value = new BMap.Map("work_map"); // 创建地图Map实例
  // const geolocation = new BMap.Geolocation();
  // const point = new BMap.Point(114.038, 22.6573);   // map.value.panTo(point);   // geolocation.getCurrentPosition(function (r) {   //   if (!r) {   //     mapRef.value.centerAndZoom("深圳", 13);   //     return;   //   }   //   map.value.centerAndZoom(new BMap.Point(r.point.lng, r.point.lat), 13); // 初始化地图,设置中心点坐标和地图级别   // });   const point = new BMap.Point(116.331398, 39.897445);   map.value.centerAndZoom("深圳", 12);   map.value.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 };   //智能搜索Localsearch类 const options = ref({renderOptions: {map:map.value, panel: "results"}}); const myLocalsearch =ref(new BMap.LocalSearch(map.value,options.value)); const addrkeyword=ref(); const addrinfodata=ref(); const isshowtxt=ref(false); //模糊查询search方法 const funSearch = ()=>{     if(addrkeyword.value){       myLocalsearch.value.search(addrkeyword.value);       myLocalsearch.value.setSearchCompleteCallback(function(rs){         if (myLocalsearch.value.getStatus() == BMAP_STATUS_SUCCESS){               if (rs.getCurrentNumPois()>0) {               isshowtxt.value=true;             }             var poiarr=[];             for (let j = 0; j < rs.getCurrentNumPois(); j++) {                 var poi=rs.getPoi(j);                 var infopoi={"title":poi.title,"address":poi.address,"lng":poi.point.lng,"lat":poi.point.lat,"ckecktxt":(j==0?true:false)};                 poiarr.push(infopoi);                 addrinfodata.value=poiarr;             }         }       })     } } //信息弹窗 const mapOneMarker=(val,point)=>{     var opts={         width: 230, // 信息窗口宽度         // height: 100, // 信息窗口高度         title: '<span style="color: #cc5522;font-size: 14px;">'+val.title+'</span>', // 信息窗口标题     };     var msg = '<span style="font-size: 13px;">地址:'+val.address+'</span>';     var infoWindow=new BMap.InfoWindow(msg,opts);//创建信息窗口对象     map.value.openInfoWindow(infoWindow,point);//打开信息窗口 }; //显示信息弹窗 const showTxtPosition=(val)=>{     if (val) {       var point=new BMap.Point(val.lng,val.lat);       map.value.panTo(point);       var point2=new BMap.Point(val.lng,val.lat+0.0001);       mapOneMarker(val,point2)       for (let i = 0; i < addrinfodata.value.length; i++) {         if (addrinfodata.value[i].title==val.title && addrinfodata.value[i].address==val.address) {           addrinfodata.value[i].ckecktxt=true;         }else{           addrinfodata.value[i].ckecktxt=false;         }       }     } } //关闭清除地图标点 const closeText=()=>{   isshowtxt.value = false   map.value.clearOverlays(); } </script>   --页面css <style lang="scss" scoped> .div-fenrig{     background: rgb(255, 255, 255);     color: rgb(0, 0, 0);     border-radius: 8px;     margin: 0px 20px;     position: absolute;     width: 230px;     top: 20px;     z-index: 100;     padding: 5px 10px;     display: flex;     font-size: 13px;     right: 359px;   }   .div-renshowtxt{     background: rgb(255, 255, 255);color: rgb(0, 0, 0);border-radius: 8px;     margin: 0px 20px;     position: absolute;     width: 300px;     top: 54px;     z-index: 100;     padding: 5px 10px;     font-size: 13px;     right: 359px;  cursor: pointer;  height: 300px;overflow-x: hidden;     overflow-y: auto;         .div-img-wh{       height: 30px;       .card-icon{         font-size: 25px;         color: #000;         margin: 0px 0px 0px 255px;       }     }     .ckTxt-res{       color:#4a59ff;     }   } </style> ---效果显示

 

 

标签:map,const,val,point,value,地址,搜索,new,百度
From: https://www.cnblogs.com/fenxiangboke/p/17154505.html

相关文章