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

//指定省市进行描边处理,省市外进行半透明遮盖。
    function getBoundary2(map,city){
        var bdary = new BMap.Boundary();
        bdary.get(city, 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);
            map.setViewport(ply.getPath());//调整视野
        });
    }

效果:

 

猜你喜欢

转载自blog.csdn.net/wjx_jasin/article/details/83819422