leaflet+geoJSON实现绘制区域边界和边界高亮效果

先展示下效果图:

在这里插入图片描述

具体代码如下:

geoJSON绘制边界

initNewMap(){
    var myStyle = {
        "color": "#00f",
        "weight": 2,
        "opacity": 0.5,
        "fillColor": 'red',
        "fillOpacity": 0,
    };
    let JsonUrl = 'http://192.168.37.129:22221/assets/images/440000.json';
   
   // 绘制地图边界
    L.geoJSON(JsonUrl, {
        style: myStyle,
    }).addTo(this.map);
     
    let _this = this;

     $.getJSON(JsonUrl, function(json) {
        _this.drawBoundary(json.features[0].geometry.coordinates[0]);
    });

},

// 边界高亮及遮罩效果
drawBoundary(blist) {
    let pNW = { lat: 59.0, lng: 73.0 };
    let pNE = { lat: 59.0, lng: 136.0 };
    let pSE = { lat: 3.0, lng: 136.0 };
    let pSW = { lat: 3.0, lng: 73.0 };
    let pArray = [];

        pArray.push(pNW);
        pArray.push(pSW);
        pArray.push(pSE);
        pArray.push(pNE);
        pArray.push(pNW);

for (let i = 0; i < blist.length; i++) {
    let points = [];
    $.each(blist[i],function(k,v){
        points.push({lat:v[1],lng:v[0]});
    });
    pArray = pArray.concat(points);
    pArray.push(pArray[0]);
}
    let plyall = L.polygon(pArray, { color:'transparent',fillColor:'#C0C0C0',fillOpacity:0.9 }); 
    plyall.addTo(this.map);
},
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值