function getBoundary(){ var bdary = new BMap.Boundary(); bdary.get("北京市", function(rs){//获取行政区域 //map.clearOverlays();//这个不注释会导致添加的标注不显示 //思路:利用行政区划点的集合与外围自定义东南西北形成一个环形遮罩层 //1.获取选中行政区划边框点的集合rs.boundaries[0] var strs = new Array(); strs = rs.boundaries[0].split(";"); var ENWS = ""; for (var i=0;i<strs.length;i++) { ENWS += strs[i] + ";" } //2.自定义外围边框点的集合 var E_JW = "170.672126, 39.623555;"; //东 var EN_JW = "170.672126, 81.291804;"; //东北角 var N_JW = "105.913641, 81.291804;"; //北 var NW_JW = "-169.604276, 81.291804;"; //西北角 var W_JW = "-169.604276, 38.244136;"; //西 var WS_JW = "-169.604276, -68.045308;"; //西南角 var S_JW = "114.15563, -68.045308;"; //南 var SE_JW = "170.672126, -68.045308 ;"; //东南角 //3.添加环形遮罩层 var ply1 = new BMap.Polygon(ENWS + E_JW + SE_JW + S_JW + WS_JW + W_JW + NW_JW + N_JW + EN_JW + E_JW, {strokeColor:"none",strokeOpacity:0,fillColor:"#fff",fillOpacity:"0.6"}); //建立多边形覆盖物 map.addOverlay(ply1);//遮罩物是半透明的,如果需要纯色可以多添加几层 //4. 给目标行政区划添加边框,其实就是给目标行政区划添加一个没有填充物的遮罩层 var ply = new BMap.Polygon(rs.boundaries[0], {strokeWeight:3,strokeColor:"#114bf3",fillColor:""}); map.addOverlay(ply); pointArray = pointArray.concat(ply.getPath()); map.setViewport(pointArray);//调整视野 }); }
setTimeout(function(){ getBoundary(); }, 200);