【百度地圖】百度地圖指定省市進行描邊處理,省市外進行半透明遮蓋。
阿新 • • 發佈:2018-11-17
//指定省市進行描邊處理,省市外進行半透明遮蓋。 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());//調整視野 }); }
效果: