创建 地图 描边

/* --------------------------创建地图描边 */
    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: '#000000',
            fillOpacity: '.3',
          }
        ) //建立多边形覆盖物
        //        	map.addOverlay(ply1);//遮罩物是半透明的,如果需要纯色可以多添加几层
        //4. 给目标行政区划添加边框,其实就是给目标行政区划添加一个没有填充物的遮罩层
        var ply = new BMap.Polygon(max, {
          strokeWeight: 3,
          strokeColor: '#064fa0',
          fillColor: '',
        })
        map.addOverlay(ply1) //ply1 只显示遮罩内
        // map.setViewport(ply.getPath()) //调整视野
      })
    },```

猜你喜欢

转载自blog.csdn.net/weixin_55333190/article/details/121874084