/**
function addMask(map,points){
var maskPoints=points;
//思路:利用目标区域点的集合与外围自定义区域形成一个环形遮罩层
//自定义外围边框点的集合
var EN_JW = new BMap.Point(170.672126, 81.291804); //东北角
var NW_JW = new BMap.Point(-169.604276, 81.291804); //西北角
var WS_JW = new BMap.Point(-169.604276, -68.045308); //西南角
var SE_JW = new BMap.Point(170.672126, -68.045308); //东南角
//添加环形遮罩层
if(points.length>0){
maskPoints.push(maskPoints[0]);//添加首个端点构建内环
}
maskPoints.push(EN_JW);
maskPoints.push(SE_JW);
maskPoints.push(WS_JW);
maskPoints.push(NW_JW);
maskPoints.push(EN_JW);
var mask = new BMap.Polygon(maskPoints, {strokeColor: "none", fillColor: "rgb(246,246,246)", strokeOpacity:1,fillOpacity:0.5,fillColor:"#000"}); //建立多边形覆盖物
map.addOverlay(mask); //遮罩物是半透明的
//添加目标区域
* 添加遮罩:遮盖非目标区域,若points为空数组则遮罩整个区域
* @param points为Point对象集合
*@date 20171212
*/function addMask(map,points){
var maskPoints=points;
//思路:利用目标区域点的集合与外围自定义区域形成一个环形遮罩层
//自定义外围边框点的集合
var EN_JW = new BMap.Point(170.672126, 81.291804); //东北角
var NW_JW = new BMap.Point(-169.604276, 81.291804); //西北角
var WS_JW = new BMap.Point(-169.604276, -68.045308); //西南角
var SE_JW = new BMap.Point(170.672126, -68.045308); //东南角
//添加环形遮罩层
if(points.length>0){
maskPoints.push(maskPoints[0]);//添加首个端点构建内环
}
maskPoints.push(EN_JW);
maskPoints.push(SE_JW);
maskPoints.push(WS_JW);
maskPoints.push(NW_JW);
maskPoints.push(EN_JW);
var mask = new BMap.Polygon(maskPoints, {strokeColor: "none", fillColor: "rgb(246,246,246)", strokeOpacity:1,fillOpacity:0.5,fillColor:"#000"}); //建立多边形覆盖物
map.addOverlay(mask); //遮罩物是半透明的
//添加目标区域
}
参考:http://blog.youkuaiyun.com/u013008179/article/details/48341441 百度地图高亮显示选中的行政区域,其余区域加遮罩