行政区划图
1 /*****行政区划array****/ 2 var wuhanAreaArray = [ 3 { 4 name:'武昌', 5 departSerialNum:10420113, 6 center: new BMap.Point(114.307235,30.544001) 7 }, 8 { 9 name:'江岸区', 10 departSerialNum:10420108, 11 center: new BMap.Point(114.307289,30.645917) 12 } 13 ] 14 15 for(var k=0;k<wuhanAreaArray.length;k++){ 16 var areaName = wuhanAreaArray[k].name; 17 var departSerialNum = wuhanAreaArray[k].departSerialNum; 18 var centerPoint = wuhanAreaArray[k].center; 19 20 var bdary = new BMap.Boundary(); 21 for(var i=0;i<rates.length;i++){ 22 var rate = rates[i]; 23 var departserialnum_rate = rate.get('departserialnum'); 24 if(departSerialNum == departserialnum_rate){ 25 //13个区的文字 26 var centerLabel = new BMap.Label(areaName,{offset: new BMap.Size(0,0), position: centerPoint}); 27 centerLabel.setStyle({"color":"green","font-weight":"bold","line-height": "20px", "text-align": "center", "width": "80px", "height": "29px", "border": "none", "padding": "2px","background": " no-repeat"}); 28 map.addOverlay(centerLabel); 29 30 //绘制行政区域图 31 bdary.get(areaName, view.bdaryCallback(areaName,rate,centerPoint,map,view)); 32 } 33 } 34 }
绘制行政区划,标红处为重要代码
1 bdaryCallback:function(areaName,rate,centerPoint,map,view){ 2 return function(rs){ 3 var strokeColor = "blue"; 4 if(rate.get('purifyingrate')<96){ 5 strokeColor = "red"; 6 } 7 //创建标签 8 var showLabel = new BMap.Label("<b>"+rate.get("departname")+rate.get('purifyingrate')+"%</b>",{offset: new BMap.Size(0,0), position: centerPoint}); 9 showLabel.setStyle({"z-index":"999999", "padding": "10px","width": "90px","border": "1px solid #ccff00"}); 10 11 var count = rs.boundaries.length; //行政区域的点有多少个 12 13 var plyArray = new Array(); 14 for(var i = 0; i < count; i++){ 15 var options = {strokeColor:strokeColor, strokeWeight:5, strokeOpacity:0.5}; 16 if(rate.get('purifyingrate')<96){ 17 options = {strokeColor:strokeColor,fillColor:"red", strokeWeight:5, strokeOpacity:0.5}; 18 } 19 var ply = new BMap.Polygon(rs.boundaries[i], options); //建立多边形覆盖物 20 map.addOverlay(ply); //添加覆盖物 21 plyArray.push(ply); 22 } 23 24 for(var j=0;j<plyArray.length;j++){ 25 //给多边形添加鼠标事件 26 plyArray[j].addEventListener("mouseover",function(){ 27 for(var q=0;q<plyArray.length;q++){ 28 plyArray[q].setStrokeColor("yellow"); 29 } 30 map.addOverlay(showLabel); 31 }); 32 plyArray[j].addEventListener("mouseout",function(){ 33 for(var q=0;q<plyArray.length;q++){ 34 // plyArray[q].setStrokeColor("blue"); 35 plyArray[q].setStrokeColor(strokeColor); 36 } 37 map.removeOverlay(showLabel); 38 }); 39 plyArray[j].addEventListener("click",function(){ 40 ply.setStrokeColor("yellow"); 41 view.centerLabelCallback(view,map,centerPoint,rate); 42 }); 43 } 44 45 } 46 }