百度地图指定省市进行描边处理,省市外进行半透明遮盖

mac2024-05-07  33

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);

最新回复(0)