行政区划图

 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     }

 

posted on 2014-09-29 16:10  看天空的星星  阅读(326)  评论(0编辑  收藏  举报

导航