function getBoundary(map,city){
var bdary = new BMap.Boundary();
bdary.get(city, function(rs){//获取行政区域
// map.clearOverlays();//清除地图覆盖物
//思路:利用行政区划点的集合与外围自定义东南西北形成一个环形遮罩层
//1.获取选中行政区划边框点的集合rs.boundaries[0]
var list =rs.boundaries;
var num="";
var max = list[0];
for (var i = 1; i < list.length; i++) {
if (list[i].length > max.length){
max = list[i];
}
}
var strs = new Array();
strs = max.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:"#0f1f40",
fillOpacity:"1"
}); //建立多边形覆盖物
// map.addOverlay(ply1);//遮罩物是半透明的,如果需要纯色可以多添加几层
//4. 给目标行政区划添加边框,其实就是给目标行政区划添加一个没有填充物的遮罩层
var ply = new BMap.Polygon(max, {strokeWeight:3,strokeColor:"#064fa0",fillColor:""});
map.addOverlay(ply);
map.setViewport(ply.getPath());//调整视野
});
}
百度地图JavaScript API使用Boundary方法添加覆盖物传入城市名称显示城市边界线
最新推荐文章于 2024-04-24 14:14:21 发布