leaflet地图区域数据可视化

       地图上数据的展示对于一些有要求的场景里面还是很重要的,vue是前端经常使用的开发语言,leaflet与vue能够很好地进行融合使用,对于GIS相关的数据学习我也仅仅只是停留在皮毛上面,今天主要是简单地基于leaflet地图框架来对指定区域进行可视化,这个之后需要对不同的图层进行叠加处理,今天只是基于给定的经纬度数据来实现数据的可视化展示功能。

      核心代码实现如下:

<script>

        var obj = {'V': [[247.5, 0.0], [247.5, 100.0]], 'Z': [[[35.5737364828, 115.865867222], [35.5712313418, 115.86128216], [35.5781793935, 115.856731607], [35.5857191388, 115.853927041], [35.5866003546, 115.85933733], [35.5799057651, 115.861827085]], [[35.5712313418, 115.86128216], [35.5687260254, 115.856697384], [35.5764528061, 115.851636347], [35.58483768, 115.848516871], [35.5857191388, 115.853927041], [35.5781793935, 115.856731607]]]};


    //到 mapbox 官网注册并创建下面的access token都是免费的,不过有5w次的浏览限制
    var url = '你自己的url数据';
    //初始化 地图
    var leafletMap = L.map('mapDiv').setView([35.593571, 115.902191], 12);
    //将图层加载到地图上,并设置最大的聚焦还有map样式
    L.tileLayer(url, {maxZoom: 18,id: 'mapbox.streets'}).addTo(leafletMap);
    

    var myLayerGroup = new L.LayerGroup();
    leafletMap.addLayer(myLayerGroup);

    // 网格图层
    var gridLayers = new Array();

    serefresh();
    
    function serefresh(){

        var point = obj["Z"];
        var val = obj["V"];
        var color = ''
        var pointlength = point.length;
        for(var i=0; i< pointlength; i++){
            //对数据值进行判断===>转化为同等的颜色值
            if (val[i][1] >= 0 && val[i][1] <= 10) {
                    color='#FFB6C1';
                    gridLayers[i] = L.polygon(point[i],{fillColor: color,fillOpacity: 0.5 ,fill: true, opacity: 1, radius: 6,  weight:0.1});
                    myLayerGroup.addLayer(gridLayers[i]);
                   }
            if (val[i][1] >= 10 &&  val[i][1] <= 20) {
                    color='#FFB6D5';
                    gridLayers[i] = L.polygon(point[i],{fillColor: color,fillOpacity: 0.5 ,fill: true, opacity: 1, radius: 6,  weight:0.1});
                    myLayerGroup.addLayer(gridLayers[i]);
                   }
            if (val[i][1] >= 20 &&  val[i][1] <= 30) {
                    color='#FFB6F1';
                    gridLayers[i] = L.polygon(point[i],{fillColor: color,fillOpacity: 0.5 ,fill: true, opacity: 1, radius: 6,  weight:0.1});
                    myLayerGroup.addLayer(gridLayers[i]);
                   }
            if (val[i][1] >= 30 && val[i][1] <= 50) {
                    color='#FF69B4';
                    gridLayers[i] = L.polygon(point[i],{fillColor: color,fillOpacity: 0.5 ,fill: true, opacity: 1, radius: 6,  weight:0.1});
                    myLayerGroup.addLayer(gridLayers[i]);
                   }
            if (val[i][1] >= 50 &&  val[i][1] <= 100) {
                    color='#DC143C';
                    gridLayers[i] = L.polygon(point[i],{fillColor: color,fillOpacity: 0.5 ,fill: true, opacity: 1, radius: 6,  weight:0.1});
                    myLayerGroup.addLayer(gridLayers[i]);
                   }
            console.log(color)
            gridLayers[i].bindPopup("Direction: " + val[i][0] +"<br/>"+ "Value: " + val[i][1]);
        }
    }
</script>

        效果截图如下:
 

 

       简单地实现了一个基于区域数据值来自动选择不同深度颜色叠加到底图图层上面的小功能,记录一下!

制作全国疫情数据可视化地图的步骤如下: 1. 收集数据:收集全国各地的疫情数据,包括确诊病例数、死亡病例数、治愈病例数等,可以从各级政府官网或者新闻网站上获取。 2. 选择地图工具:选择合适的地图工具进行数据可视化,如ECharts、Leaflet、D3.js等。其中,ECharts是一种基于JavaScript的开源可视化工具,可以实现各种图表的绘制和交互。Leaflet是一种JavaScript库,可以帮助开发者在网页中嵌入可交互的地图。D3.js是一种JavaScript库,可以帮助开发者使用HTML、SVG和CSS来创建数据可视化。 3. 绘制地图:根据选定的地图工具,进行地图的绘制,可根据需要选择中国地图或者各省份地图。 4. 导入数据:将收集到的疫情数据导入到地图工具中,以便进行可视化处理。 5. 设计可视化效果:根据数据的特点和要传达的信息,设计合适的可视化效果。例如,可以通过不同颜色的填充来表示各省份的确诊人数、死亡人数等。 6. 添加交互功能:为地图添加交互功能,让用户可以根据需要选择特定的区域进行查看。 7. 发布地图:完成地图制作后,可以将其发布到网站上,供用户查看和使用。 需要注意的是,制作可视化地图需要一定的编程和设计技能,对于初学者来说可能会有一定难度,需要不断学习和尝试。同时,还需要注意数据的准确性和可靠性,以及地图的可读性和易用性,让用户能够轻松地理解数据和信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值