瞎子
8.872982,3
4.2581",isOpen:0,tel:""}, {title:"陜西福海達汽車銷售服務有限公司",content:"西安市西三環(huán)外阿房一路西段95號 ",nt:"",isOpen:0,tel:"029-84253121"}, ] 4,準備工作做完了,下來開始做地圖吧,前面幾步都是一樣的,城市中心點哪里,我是根據(jù)ip在數(shù)據(jù)庫里查出的城市名,分配下來的,這樣保證中心點一直在城市中心//開始寫地圖基本信息var map = new BMap.Map("container2");//var pp =new BMap.Point("西安"); // 定義一個中心點坐標map.centerAndZoom("<?php echo $cityname ?>",12); // 初始化地圖,設(shè)置中心點坐標和地圖級別。10為市級,這里的中心點用php寫入"西安",這里不能加市字 var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE}); //定義向地圖中添加縮放控件map.addControl(ctrl_nav); //向地圖中添加縮放控件 //向地圖中添加縮略圖控件var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});map.addControl(ctrl_ove); //向地圖中添加比例尺控件var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});map.addControl(ctrl_sca); 5,地圖準備工作做完了,下來要做就是添加標注點了,上面準備的那個數(shù)組就可以哪來用了,這里另外還準備了幾個數(shù)組,用來存放標注點和提示信息窗口var nt=new Array(); //存放標注點經(jīng)緯信息的數(shù)組var marker=new Array(); //存放標注點對象的數(shù)組var info=new Array(); //存放提示信息窗口對象的數(shù)組for(var i=0;i<markerArr.length;i++){ p0 = markerArr[i].nt.split(",")[0]; // p1 = markerArr[i].nt.split(",")[1]; //按照原數(shù)組的nt格式將地圖點坐標的經(jīng)緯度分別提出來 nt[i] = new BMap.Point(p0,p1); //循環(huán)生成新的地圖點 marker[i]=new BMap.Marker(nt[i]); //按照地圖點坐標生成標記 map.addOverlay(marker[i]); //在地圖上循環(huán)添加標記 info[i]=new BMap.InfoWindow("<b class='iw__title' title='" + markerArr[i].title + "'>" + markerArr[i].title + "</b><div class='iw__content'>"+markerArr[i].content+"</div><div class='iw__content'>銷售熱線:"+markerArr[i].tel+"</div>");//生成提示信息窗口,并將窗口對象按順序存入數(shù)組中}好了現(xiàn)在標注點,提示信息都按順序存入數(shù)組了,提示點在地圖上也已經(jīng)顯示出來了 6,下來就該把提示信息和相關(guān)的標注點綁定起來了,還是按循環(huán)一個一個的取,因為兩個數(shù)組的順序都是一樣的,所以配對就好配對了<?phpfor($i=0;$i<count($areashoplist);$i++){?> marker[<?php echo $i;?>].addEventListener("mouseover", function(){this.openInfoWindow(info[<?php echo $i;?>]);});<?php} ?>最后的結(jié)果就是有多少個標注點,綁定多少次,數(shù)組的下標已經(jīng)固定了,不存在i值變化的情況,就繞開了開頭提的那個閉包問題,在下顯示應該是這樣的: marker[0].addEventListener("mouseover", function(){this.openInfoWindow(info[0]);}); marker[1].addEventListener("mouseover", function(){this.openInfoWindow(info[1]);}); marker[2].addEventListener("mouseover", function(){this.openInfoWindow(info[2]);}); marker[3].addEventListener("mouseover", function(){this.openInfoWindow(info[3]);}); .........................................7,下來該給外面的超鏈接綁定地圖上標注點的顯示了;有了上面的提示信息窗口數(shù)組,用jquery綁定一個當然就很簡單了<?phpfor($i=0;$i<count($areashoplist);$i++){ if(is_null($areashoplist[$i]['mapnt'])){ //如果mapnt沒有設(shè)置則跳過本次循環(huán),執(zhí)行下一個循環(huán) continue; }?> $('#list<?php echo $i;?>').live('mouseover',function(){ map.openInfoWindow(info[<?php echo $i;?>],nt[<?php echo $i;?>]); //將信息提示窗口的顯示按順序綁定給外部的鏈接文字 return false; }); <?php } //循環(huán)結(jié)束?>
廣播傳媒
2021-09-23 17:28:53 1015查看 1回答
kangkey
2021-09-23 17:29:01 1130查看 1回答
謝文靜
2021-09-23 17:29:22 1123查看 2回答
? Regret.
2021-09-23 17:29:22 1182查看 1回答
巴寶
2021-09-23 17:30:22 390查看 2回答
瞎子
2021-09-23 17:32:27 361查看 1回答
咿呀咿呀喔
2021-09-23 17:32:27 459查看 1回答
canlandegou
2021-09-23 17:34:30 885查看 2回答