首页 > 其他分享 >Mapbox生成热力图

Mapbox生成热力图

时间:2023-04-14 19:11:42浏览次数:40  
标签:zoom 生成 heatmap rgba Mapbox 力图 数据

热力图是一种将数据点分布在坐标轴上的可视化方法,它可以帮助用户更直观地了解数据分布情况。在地理信息系统(GIS)中,热力图可以用于可视化城市规划、交通流量、环境污染等信息。Mapbox是一家提供开源GIS软件的公司,其中包括Mapbox热力图。本文为源GIS将向您介绍Mapbox的特点,以及热力图原理、代码和示例效果。

一、Mapbox简介

Mapbox是一个地图引擎,相比于其他2D栅格图地图引擎,如Leaflet和OpenStreetMap,Mapbox GL JS使用矢量数据渲染地图(可以使用栅格数据),矢量数据易于更改要素样式,图层顺序,也可以在数据版本迭代时快速同步更新。

二、Mapbox热力图

1、基本原理

Mapbox热力图的生成原理比较简单。首先,Mapbox热力图会将数据点分布在整个地图上,然后根据数据点之间的距离或权重计算每个数据点的像素值。接着,Mapbox热力图会根据数据点之间的距离或权重计算每个数据点的热度值,即每个数据点的颜色。最后,Mapbox热力图会将每个数据点的像素值和热度值作为属性,将它们分别映射到坐标轴上,形成热力图。

2、关键代码

添加heatmap图层的关键代码如下:

map.addLayer({
  "id": "myheatmap",
  "type": "heatmap",
  "source": "my-data",
  "maxzoom": 16,
  "paint": {
    //根据zoom设置热力图强度变化
    "heatmap-intensity": [
      "interpolate",
      ["linear"],
      ["zoom"],
      3, 1,
      16, 2
    ],
    // 调整颜色
    "heatmap-color": [
      "interpolate",
      ["linear"],
      ["heatmap-density"],
      0, "rgba(0,0,0,0)",
      0.2, "rgba(25,70,150, .7)",
      0.4, "rgba(60,160,70, .7)",
      0.6, "rgba(250,230,30, .8)",
      0.8, "rgba(250,130,45, .9)",
      1, "rgba(255,36,36, .9)"
    ],

    // 根据zoom设置热力图计算半径
    "heatmap-radius": [
      "interpolate",
      ["linear"],
      ["zoom"],
      3, 10,
      16, 100
    ],
    // 根据zoom设置热力图透明度
    "heatmap-opacity": [
      "interpolate",
      ["linear"],
      ["zoom"],
      3, 1,
      16, 1
    ],
  }
});

3、实现效果

通过不同比例尺实时计算和渲染的热力图效果:

img

img

img

img

img

标签:zoom,生成,heatmap,rgba,Mapbox,力图,数据
From: https://www.cnblogs.com/wygeo/p/17319350.html

相关文章

  • Linux java生成图片文字乱码问题
     场景:用java生成图片文字,在windows运行没问题,发布到linux中发现文字乱码了原因:图片是在Linux下的系统里生成的,用到java.awt.Font这个类。实例化的时候它会到JRE里去找字体,如果找不到对应字体,就会显示方框解决方法:把需要的字体文件从windows系统中粘贴到Linux一份,重启服务器......
  • Java 生成ID 有哪些方式
    除了雪花算法,Java中还有其他生成ID的方法,其中一些常见的包括:UUID(UniversallyUniqueIdentifier):使用随机数生成128位的唯一标识符。Java提供了UUID类来实现此功能。基于时间戳的序列号生成器:使用当前时间戳生成序列号,保证唯一性。这种方法需要考虑时间回拨和并发访......
  • hexo博客生成报错YAMLException: can not read a block mapping entry
    报错信息:YAMLException:cannotreadablockmappingentry;amultilinekeymaynotb---title:[转]--ISP(图像信号处理)算法概述、工作原理、架构、处理流程date:2020-03-2221:39:40tags:[图像处理]mathjax:true---报错位置是第2行第5位意思是我的date:2020-03-222......
  • android:keytool生成应用签名证书(java 15)
    一,查看是否已安装keytoolkeytool命令的程序位于jdk的安装目录/bin下,1,查看是否有keytool命令已安装?[lhdop@blog~]$ls/usr/local/soft/jdk-17/bin/keytool/usr/local/soft/jdk-17/bin/keytool2,查看帮助:列出可用的命令[lhdop@blog~]$keytool--helpKeyandCert......
  • 使用c#调用chatgpt 。以下代码由ai自动生成。
    usingSystem;usingSystem.IO;usingSystem.Net;usingSystem.Text;classProgram{staticvoidMain(){//API的URLstringapiUrl="https://api.openai.com/v1/chat/completions";//设置API的请求头WebRequestrequest=WebRequest.Create(apiUrl)......
  • MATLAB代码:基于列约束生成法CCG的两阶段问题求解
    MATLAB代码:基于列约束生成法CCG的两阶段问题求解关键词:两阶段鲁棒列约束生成法CCG算法参考文档:《Solvingtwo-stagerobustoptimizationproblemsusingacolumn-and-constraintgenerationmethod》仿真平台:MATLABYALMIP+CPLEX主要内容:代码构建了两阶段鲁棒优化模型,并......
  • 使用反射按照类结构生成MySQL表
    因为一个表对应一个java类,如果java类多了,一个一个创建表太消耗时间了,同时也想造下轮子。加深下对反射和注解的使用反射和注解把java一切皆对象的思想完全的体现了出来,同时也给java提供了强大的动态性。主要进行工作的类,可以在里面加上jdbc,就可以实现自动创建表了。importjava.......
  • Fabric生成身份信息文件
    以Ubuntu为例fabric网络架构为3order节点,2org组织,2peer节点1.创建文件并下载二进制文件mkdir3order-2peercd3order-2peer/ 生成身份信息文件需要一些可执行文件,因此我们需要下载fabric的二进制文件,文件路径如下:fabric二进制文件选择适合的fabric版本进行下载,下载完成......
  • 使用java.util.zip对生成的字节数组输出文件流 进行打包压缩(单个、批量),并返回压缩包
    废话不多说直接上代码 packagegov.test.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.util.List;importjava.util.Map;importorg.apache.tools.zip.ZipEntry;importorg.apache.tools.zip.Zip......
  • JAVA生成行程单PDF
    JAVA生成行程单PDF一、pom依赖首先引入PDF需要的pom依赖<!--pdf--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version>......