vue+leaflet地图实现根据省份区域划分颜色渐变图

9 篇文章 3 订阅

效果图
![](https://img-blog.csdnimg.cn/063cdd14e3844678a0aaf9a34bfeaea0.png

实现代码如下

let separatedColors = ['rgb(255, 153, 209)'];// 离散颜色,如效果图上的粉色
let maxVal = 300000;// 定义一个最大值
data.forEach((item) => {
    for (let i = 10; i > 0; i--) {
        if (item.us_year < maxVal * i) {
            item.opacity = i / 10;
        }
    }
});
// 该geojson文件为全国地理坐标数据,可通过[阿里云数据化可视平台](http://datav.aliyun.com/portal/school/atlas/area_selector#&lat=33.521903996156105&lng=104.29849999999999&zoom=4)获取
this.geojson = geojson;
if (this.fixedProvince) {
    geojson.features.forEach(item => {
        if (item.properties.name === this.fixedProvince) {
            this.geojson = item;
        }
    });
}
// 定义一个图层geoLayerGroup
this.geoLayerGroup = this.$L.geoJSON(this.geojson, {
    onEachFeature: (feature, layer) => {
        data.forEach((item) => {
            if (Number(item.adcode) === Number(feature.properties.adcode)) {
                feature.properties.value = item;
                feature.properties.opacity = item.opacity;
            }
        });
        feature.properties.color = separatedColors[0];
        layer.setStyle({
            stroke: false, // 取消边框
            color: feature.properties.color,
            fillOpacity: feature.properties.opacity// 默认0.2
        });
        layer.closeTooltip();
        if (this.labelLayer) {
            this.map.removeLayer(this.labelLayer);
        }
        if (feature.properties.value) {
        	// 点击某一个省份则展示该省份名称和数据的弹出框
            layer.bindPopup(`<div class="title">${feature.properties.name}</div>
            <div class="geo-span">${feature.properties.value}</div>
            `, { className: 'geoPopup' });
        }
        this.map.on('zoom', () => {
        	// 缩放地图弹出框消失
            layer.closePopup();
        });
    }
});
// 将颜色渐变图层添加到地图中
this.geoLayerGroup.addTo(this.map);

geojson获取方式:阿里云数据化可视平台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Leaflet 是一种结合了Vue框架和Leaflet库的前端技术,用于展示和操作天地图。天地图是一种具有高清影像和矢量数据的地图服务,提供了丰富的地理信息资源和功能,如地图展示、地图操作、定位导航等。 Vue Leaflet 可以通过调用天地图的API接口,获取并展示天地图的各类地理信息。通过Vue的组件化开发方式,可以方便地在Vue项目中使用这些地理信息,实现自定义的地图功能。例如,在Vue Leaflet 中可以实现地图、标记点、线段、面等地理要素的显示和编辑。 Vue Leaflet 提供了一套方便易用的API和组件,可以轻松地在Vue项目中集成和使用天地图。比如,可以使用Vue Leaflet 提供的地图组件将天地图展示在网页中,可以使用它提供的标记点组件在地图上添加标记,可以使用它提供的工具条组件进行地图的操作和导航等。 使用Vue Leaflet 可以有效地提高开发效率和用户体验。通过其简洁的API和灵活的组件,开发人员可以快速地实现各种地图需求,如显示地图、标记地点、展示线段等。并且,Vue Leaflet 结合了Vue框架的优势,可以更好地组织和管理地图相关的逻辑代码,使开发工作更加方便和高效。 总之,Vue Leaflet 是一种方便、灵活和高效的前端技术,用于展示和操作天地图。它通过结合Vue框架和Leaflet库,提供了一套方便易用的API和组件,帮助开发人员快速实现各种地图需求,提高开发效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值