【WebGIS实例】(7)MapboxGL绘制不同颜色的Symbol图标

news2024/10/6 1:40:45

前言

在上一篇实例博客中(MapboxGL绘制简易气泡图)我们绘制了一个简易的单色气泡图,现在需求升级了。我们需要为气泡加载不同的颜色。
而要实现这个效果,其实相当简单,直接利用Mapbox提供的SDF渲染方法。
官网教程参考:Using recolorable images in Mapbox maps
在这里插入图片描述

接下来,我们将在【WebGIS实例】(6)MapboxGL绘制简易气泡图这篇博客的基础上来实现我们想要的效果。

实现

首先,矢量要素的properties新增color属性,数据格式示例:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "num": 414,
        "color": "#808080"
      },
      "geometry": {
        "coordinates": [
          112.68784006428433,
          23.85455050268874
        ],
        "type": "Point"
      }
    }
  ]
}

第一步:为图像启用SDF

 // 加载图标
 map.loadImage(require('@/assets/circle.png'), function (error, image) {
   if (error) throw error
   map.addImage('bubbleIcon', image, { sdf: true })
 })

这里我们直接引入circle.png,它是一个单色的圆形。同时,我们要为图像启用sdf: { sdf: true },启用的sdf的图像,在Symbol图层中就能够通过icon-color属性来重新渲染图像的颜色。

第二步:配置图像实际渲染的颜色

map.addLayer({
  id: 'bubbleLayer',
  type: 'symbol',
  source: 'bubbleSource',
  layout: {
    'icon-image': 'bubbleIcon', // 图标ID
    'icon-size': 0.2, // 图标的大小
    'icon-anchor': 'center', // 图标的位置
    'text-field': ['get', 'num'],
  },
  paint: {
    'text-color': '#fff',
    'icon-color': ['get', 'color']
})

上一段代码中,我们在'icon-color'里配置图标实际展示的颜色,直接获取矢量数据的propertiescolor的值。

最后

需要注意的是,SDF功能比较适合单色图像。如果你的图像有多种颜色,你可以去看看牛老师的这篇博客mapboxGL中多颜色图标的实现_牛老师讲GIS的博客-CSDN博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/411116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当星辰天合 SDS 遇见 Elastic

4 月 8 日,“Elastic 中国开发者大会 2023 ”在深圳举行,XSKY星辰天合对象存储产品总监邹博引代表星辰天合参加了此次大会,并做了主题为《SDS 与 Elasticsearch 的碰撞》的分享。“Elastic 中国开发者大会 2023 ”是由 Elastic、Elastic 中文…

【三十天精通Vue 3】 第三天 Vue 3的组件详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 组件的概述1. Vue 3 的组件系统2. Vue 3 组件的特点…

【CE】Mac下的CE教程Tutorial:进阶篇(第9关:共享的代码)

▒ 目录 ▒🛫 导读开发环境1️⃣ 第9关:共享的代码翻译操作🛬 文章小结📖 参考资料🛫 导读 开发环境 版本号描述文章日期2023-03-操作系统MacOS Big Sur 11.5Cheat Engine7.4.3 1️⃣ 第9关:共享的代码 翻…

Python数据分析matplotlib学习

Python数据分析的工具和库包括: 1.Jupyter Notebook:用于交互式数据分析和可视化。 2.NumPy:用于进行数值计算和数组操作。 3.Pandas:用于数据处理和清洗。 4.Matplotlib:用于数据可视化。 5.Scikit-learn:…

MAZDA CX-50没现车怎么办?赶紧去VR看车啊!

爱车一族往往都有过这样的经历:听说某家品牌出了一款心仪的新车,于是一直心心念念想要先睹为快。然而这时候问题就来了:新车从发布到量产上市往往要经历一段过程。没有现车的日子里,就算每天去4S店蹲守也看不到新车。那种心里痒痒…

集成学习详细总结(不涉及数学理论部分)

集成学习(Ensemble Learning) 1概念 集成学习就是将多个弱学习器组合在一起,从而得到一个更好更全面的强监督学习器模型。其中集成学习被分为3大类:bagging(袋装法)不存在强依赖关系,其中基学…

Pytorch深度学习笔记(一)前瞻概述

目录 1.人类智能Human intelligence 2.机器学习Machine learning 3.学习系统Learning System 4.神经网络neural network 课程推荐:《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibili 1.人类智能Human intelligence 人类智能Human intelligence:把视…

2023年第十四届蓝桥杯javaB组省赛真题

👨‍💻作者简介:练习时长两年半的java博主 📖个人主页:君临๑ 🎞️文章介绍:2023年第十四届蓝桥杯javaB组省赛真题 🎉所属专栏:算法专栏 🎁 ps:点…

批量自动翻译软件-准确的翻译软件

现代社会,在全球化背景下,语言障碍是碍企业发展的主要因素之一。而翻译软件的出现,为人们跨越语言障碍带来了新的解决方案。针对翻译需要大量文字内容的情况,有一些能翻译大量文字的翻译软件: 147CGPT翻译软件特点&…

【硬件】嵌入式板卡硬件电路设计、焊接

文章目录嵌入式板卡电路 框图常用焊接工具和焊接操作 框图一、元器件//——有极性——//1 肖特基二极管2 钽电容3 三极管4 MOS5 LED6 SMAJ5.0CA(TVS管)8 SRV05-4(ESD管)7 电解电容//——无极性——//1 电容2 电阻3 电感4 保险丝//…

软件测试别再说简历项目不会写了,给你安排的明明白白

目录 个人信息 职业技能 工作经历 项目经历 工作经历 项目经历 教育经历 自我评价 个人信息 姓 名:xxx 性 别:女 手 机:xxxxxxxxxxxx 最高学历:统招硕士 工作年限:3 年 职…

Linux搭建docker

1. 查看系统的内核版本 [rootwide ~]# uname -r 3.10.0-1160.el7.x86_642. 将yum更新到最新版本 [rootwide ~]# yum upate -y Complete!3. 安装Docker所需的依赖包 [rootwide ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2 Loaded plugins: fastes…

Ae:几何选项

在 Ae 中,一个图层开启 3D 之后,会多出几何选项 Geometry Options和材质选项 Material Options两个属性组。如果“几何选项”不可用,可尝试“更改渲染器” Change Renderer,比如,在合成设置中将“经典 3D” Classic 3D…

SpringBoot使用Freemarker导出word模板(OpenXML)

1、OpenXML word.docx文档另存为xml之后会生成带有OpenXML标签的文档。 1.1、常用标签示意 标签解释<w:wordDocument>XML文档开头描述&#xff0c;包括各种命名空间的描述<o:DocumentProperties> <o:CustomDocumentProperties> <w:fonts> <w:sty…

算法总结-深度优先遍历和广度优先遍历

深度优先遍历(Depth First Search&#xff0c;简称DFS) 与广度优先遍历(Breath First Search&#xff0c;简称BFS)是图论中两种非常重要的算法&#xff0c;生产上广泛用于拓扑排序&#xff0c;寻路(走迷宫)&#xff0c;搜索引擎&#xff0c;爬虫等。 一、深度优先遍历 深度优先…

网络编程三要素

网络编程三要素 IP、端口号、协议 三要素分别代表什么 ip&#xff1a;设备在网络中的地址&#xff0c;是唯一的标识 端口号&#xff1a;应用程序在设备中的唯一标识 协议&#xff1a;数据在网络中传输的规则 常见的协议有UDP、TCP、http、https、ftp ip&#xff1a;IPv4和…

mongodb $lookup 联表查询

ollection orders : orders record example collection items :items record example $lookup 联表查询 通过item字段连接两个集合orders和items,然后使用 $replaceRoot 中的 $mergeObjects 合并成items和orders的连接文档 db.orders.aggregate( [{$lookup: {from: …

ChatGPT原理解析

文章目录Transformer模型结构构成组件整体流程GPT预训练微调模型GPT2GPT3局限性GPT4相关论文Transformer Transformer&#xff0c;这是一种仅依赖于注意力机制而不使用循环或卷积的简单模型&#xff0c;它简单而有效&#xff0c;并且在性能方面表现出色。 在时序模型中&#…

Databend 开源周报第 88 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.com 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Support Eager…

瑞吉外卖——后台系统登录与退出功能

目录 一、登录功能 1.1 思路 1.2 代码 1.3 完善登录功能——过滤器 一、登录功能 1.1 思路 将页面提交的密码password进行md5加密处理 根据页面提交的用户名username查询数据库 如果没有查询到则返回登录失败结果 密码比对&#xff0c;如果不一致则返回登…