【前端搞地图】教你如何绘制一张填色专题地图

简介: 【前端搞地图】教你如何绘制一张填色专题地图

🌏【前端搞地图】系列第四弹来啦,今天给大家带来的是如何制作一张填色专题地图。在前两篇文章中我们大致讲解了Mapbox基础使用以及如何去设计一张高度可自定义的地图,还没有学会的小伙伴可以查看前两篇文章,自己动手实操下,这里就不对基础做过多的介绍了。image.png

制作思路

制作填色专题地图,目前有两种思路:

  • 直接在Mapbox Studio上传数据,根据属性值调整配色;
  • 添加fill图层,使用Mapbox Expression调整配色。

准备数据

其实在Mapbox的地图中,我们可以在Studio中上传国家省份城市等多边形数据,然后在Style中引用这个数据图层,也可以使用自带的商业边界数据。同时GL JS SDK支持根据瓦片中的数据进行配色的的功能,在 Mapbox 中我们把它叫做Expression

数据的获取可以推荐一个网站:http://datav.aliyun.com/tools/atlas/index.html#&lat=33.521903996156105&lng=104.29849999999999&zoom=4

支持省市区GeoJson的数据下载:image.pngimage.png可以点击 右侧 下载按钮直接下载json文件,当然下载下来还远远不够,需要自定义添加可视化属性,这里建议把数据保存到数据库中,方便后期动态添加;这里增加 ConfirmedRecoveryDeaths数据, 因为本次只对省级数据进行了可视化,所以只需在数据库中按省份进行分组查询即可得到每个省份的以上数据,接着就是常规操作,为GeoJSON properties添加这几个属性就 OK,示例:

"properties": {
      "childNum": 17,
      "size": "1700",
      "name": "河南省",
      "id": "41",
      "cp": [
             113.0668,
             33.8818
             ],
       "confirmed": 1276,
       "deaths": 24,
       "recovery": 1270
 }

思路1实现

需要把之前编辑好的数据保存为本地文件,上传 Mapbox Studio; Mapbox Studio 的基本使用这里就不做过多讲解了,不会使用的小伙伴可以查看之前几篇文章做了解。这里直接创建一个新的样式地图,样式看自己喜好选择image.pngimage.pngimage.png

image.png选择后应该页面应该会展示出一个中国地图的样式,具体展示还要根据自己选择的数据有关系

image.pngimage.pngimage.png接着将其发布,然后在自己的Mapbox应用里引用为底图就可以了。

上面这个方法固然可以实现效果,但是动态变化难以实现,例如,我想能够快速切换显示的属性,如果仍使用第一种方法,就只好发布三个图层,然后切换显示,这样效率不高。

思路2实现

在前端使用程序添加GeoJSON图层,在后端根据查询条件生成GeoJSON数据,需要数据时访问后端接口即可。前端代码如下:

map.addSource("fillSourceID", {
        type: "geojson",
        data: "./GeoJson.json"  // 自己的json文件
      });
      map.addLayer({
        id: "fillID",
        type: "fill" /* fill类型一般用来表示一个面,一般较大 */,
        source: "fillSourceID",
        paint: {
          "fill-color": {
            property: "confirmed", // this will be your density property form you geojson
            stops: [
              [0, "#ffd0a6"],
              [10, "#ffd0a6"],
              [100, "#ffaa7f"],
              [500, "#ff704e"],
              [1000, "#f04040"],
              [10000, "#b50a09"]
            ]
          },
          "fill-opacity": 1 /* 透明度 */
        }
      });

使用该种方式,程序员可以自由控制展示的属性、展示的颜色配置展示数据时间周期等,程序的可扩展性得到了很大的增强。最终效果时实现:image.png

相关文章
|
前端开发 搜索推荐 定位技术
GIS前端—地图标注
GIS前端—地图标注
277 1
|
存储 前端开发 定位技术
GIS前端编程 地图常用操作
GIS前端编程 地图常用操作
215 0
|
9月前
|
前端开发 定位技术 API
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
【4月更文挑战第30天】本文介绍了在Flutter中集成第三方服务,如支付和地图,以增强应用功能和用户体验。开发者可通过官方或社区插件集成服务,关注服务选择、API调用、错误处理和用户体验。支付集成涉及选择服务、获取API密钥、引入插件、调用API及处理结果。地图集成则需选择地图服务、获取API密钥、初始化地图并添加交互功能。集成时注意选择稳定插件、阅读文档、处理异常、优化性能和遵循安全规范。随着Flutter生态发展,更多第三方服务将可供选择。
131 0
【Flutter前端技术开发专栏】Flutter中的第三方服务集成(如支付、地图等)
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
120 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
9月前
|
前端开发 定位技术
前端知识笔记(十七)———地图多点标注功能
前端知识笔记(十七)———地图多点标注功能
166 1
|
前端开发 数据可视化 定位技术
GIS前端-地图标绘与动画
GIS前端-地图标绘与动画
180 0
|
前端开发 JavaScript 定位技术
GIS前端-地图事件编程
GIS前端-地图事件编程
98 0
|
开发框架 前端开发 JavaScript
GIS前端-地图操作与交互
GIS前端-地图操作与交互
229 0
|
前端开发 JavaScript 定位技术
提升前端GIS开发技能:深入了解5个热门地图框架
提升前端GIS开发技能:深入了解5个热门地图框架
1017 0
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-网上地图资源获取1
前端学习笔记202305学习笔记第二十三天-网上地图资源获取1
58 0

热门文章

最新文章

  • 1
    【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
  • 2
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 5
    详解智能编码在前端研发的创新应用
  • 6
    巧用通义灵码,提升前端研发效率
  • 7
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    智能编码在前端研发的创新应用
  • 9
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 10
    抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
  • 1
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    24
  • 2
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    43
  • 3
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    25
  • 4
    巧用通义灵码,提升前端研发效率
    84
  • 5
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    137
  • 6
    详解智能编码在前端研发的创新应用
    92
  • 7
    智能编码在前端研发的创新应用
    75
  • 8
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    35
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    111
  • 10
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    73