Vue 3 中使用 InMap 绘制热力图

news2024/9/9 0:16:26

Alt

本文由ScriptEcho平台提供技术支持

项目地址:传送门

Vue 3 中使用 InMap 绘制热力图

应用场景介绍

InMap 是一款强大的地图组件库,它提供了一系列丰富的可视化功能,包括热力图。热力图可以将数据点在地图上以颜色编码的方式可视化,从而直观地展示数据的分布和密度。

代码基本功能介绍

这段代码使用 Vue 3 和 InMap 实现了热力图功能。它加载了必要的 JavaScript 库,并创建了一个 InMap 地图对象。然后,它创建了一个点覆盖层,将数据点渲染为热力图。用户可以单击热力图上的点以获取更多信息。

功能实现步骤及关键代码分析说明

1. 加载 JavaScript 库
const loadJavascript = (jsUrl) => {
  return new Promise((resolve, reject) => {
    const script = document.createElement('script')
    script.type = 'text/javascript'
    script.onload = () => {
      console.log('JS脚本加载完成:', jsUrl)
      resolve()
    }
    script.onerror = (err) => {
      console.error('JS脚本加载失败:', jsUrl)
      reject(err)
    }
    script.src = jsUrl
    document.body.appendChild(script)
  })
}

这段代码使用 Promise 异步加载必要的 JavaScript 库。它创建了一个 script 元素,并为其设置 type、src 和事件处理程序。然后,它将 script 元素添加到 body 元素中,触发加载过程。

2. 创建地图对象
var map = new inMap.Map({
  center: [105.403119, 38.028658],
  zoom: {
    value: 5,
    show: true,
    max: 18,
    min: 5,
  },
  id: 'allmap',
  skin: 'Blueness',
  zoom: {
    show: true,
  },
})

这段代码使用 InMap.Map 构造函数创建一个地图对象。它指定了地图的中心点、缩放级别、皮肤和 ID。

3. 创建点覆盖层
var overlay = new inMap.PointOverlay({
  tooltip: {
    show: true,
    formatter: '{count}',
  },
  legend: {
    show: true,
    itle: '标题',
  },
  style: {
    normal: {
      backgroundColor: 'rgba(200, 200, 50, 1)', // 填充颜色
      shadowColor: 'rgba(255, 255, 255, 1)', // 投影颜色
      shadowBlur: 35, // 投影模糊级数
      globalCompositeOperation: 'lighter', // 颜色叠加方式
      size: 5, // 半径
    },
  },
  data: data.map(function (item, index) {
    item.name = '散点' + index
    item.count = item.count || index
    return item
  }),
  event: {
    onMouseClick: function (item, event) {
      //能获取当前点的信息
    },
  },
})

这段代码使用 InMap.PointOverlay 构造函数创建一个点覆盖层。它指定了覆盖层的提示信息、图例、样式和数据。

4. 将覆盖层添加到地图中
map.add(overlay)

这段代码将点覆盖层添加到地图中。

总结与展望

开发这段代码的过程让我对 InMap 的功能有了更深入的了解。我学到了如何使用 InMap 加载 JavaScript 库、创建地图对象、创建点覆盖层以及将覆盖层添加到地图中。

未来,我计划扩展此代码以支持更多功能,例如:

  • 使用不同的数据源

  • 自适应缩放级别

  • 自定义热力图样式

    更多组件:



    获取更多Echos

    本文由ScriptEcho平台提供技术支持

    项目地址:传送门

    扫码加入AI生成前端微信讨论群:

扫码加入群聊

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

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

相关文章

NGINX项目实战

一、nginx四层代理 部署支持4层TCP/UDP代理的Nginx服务器 部署nginx服务器 编译安装必须要使用--with-stream参数开启4层代理模块。 [rootproxy ~]# rm -rf /usr/local/nginx/ #清理环境 [rootproxy nginx-1.16.1]# ./configure --with-http_ssl_module --with-stream #开…

医疗器械产品没有互联网连接,就不适用于网络安全要求吗?

医疗器械产品是否不适用于网络安全要求,需要考虑产品是否具有网络连接功能以进行电子数据交换或远程控制,以及是否采用储存媒介进行电子数据交换。详细解析如下: 一、医疗器械的网络安全要求不仅限于互联网连接 数据交换接口:医疗…

这才是 PHP 高性能框架 Workerman 的立命之本

大家好,我是码农先森。 在这个大家都崇尚高性能的时代,程序员的谈笑间句句都离不开高性能,仿佛嘴角边不挂着「高性能」三个字都会显得自己很 Low,其中众所皆知的 Nginx 就是高性能的代表。有些朋友可能连什么是高性能都不一定理解…

【SPIE独立出版:高录用、快检索】第四届通信、网络与物联网国际学术会议 (CNIoT 2024,8月30-9月1)

为了促进通信、计算机和控制等领域专家学者跨界交流与合作,打造最前沿的交流平台,第四届通信、网络与物联网国际学术会议 (CNIoT 2024)将涉及通信、网络、物联网、IT能量感知技术、人工智能应用等领域。 会议将为专注于该研究领域的国内外优秀…

一键切换阿里yum源(包括其他系统repo镜像查找方法)

一键切换阿里yum源 示例命令其他系统repo镜像GitHub文档 示例命令 # 备份旧源 mv CentOS-Base.repo CentOS-Base.repo.bak # 添加新源(阿里镜像源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo其他系统repo镜像 这里的示例是用…

RT-DETR:DETRs Beat YOLOs on Real-time Object Detection (CVPR2024)

DETRs Beat YOLOs on Real-time Object Detection 论文链接:http://arxiv.org/abs/2304.08069 代码链接:https://github.com/lyuwenyu/RT-DETR https://github.com/ultralytics/ultralytics/tree/main/ultralytics/models/rtdetr(已集成到Y…

2024.7.29 作业

1> 写一个日志文件&#xff0c;将程序启动后&#xff0c;每一秒的时间写入到文件中 #include <myhead.h> int main(int argc,const char *argv[]) {FILE *fp NULL;if((fpfopen("./log.txt","r"))NULL) {perror("open error1");return…

使用 Python 实现计算交并比(IoU)的代码示例:

两个矩形框的交集/并集 IOU(A)/(ABC) box_areas(box[2]-box[0])*(box[3]-box[1])boxes_areas(box[:,2]-box[:,0])*(box[:,3]-box[:,1])l_xtorch.maximum(box[0],boxes[:,0])l_ytorch.maximum(box[1],boxes[:,1])r_xtorch.minimum(box[2],boxes[:2])r_ytorch.minimum(box[3],box…

SpringCloud+Vue3主子表插入数据(芋道)

目的&#xff1a;多表联查获取到每个班级里面所有的学生上课的信息。点击消课插入到消课主表和消课子表&#xff0c;主表记录班级信息&#xff0c;消课人员信息&#xff0c;上课时间。子表记录上课学员的信息&#xff0c;学员姓名、手机号、班级名称、班级类型、上课时间、老师…

7月29(信息差)

&#x1f30d;最强模型 Llama 3.1 如期而至&#xff01;扎克伯格最新访谈&#xff1a;Llama 会成为 AI 界的 Linux &#x1f384;谷歌AlphaProof攻克国际奥赛数学题 https://www.51cto.com/article/793632.html ✨SearchGPT第一波评测来了&#xff01;响应速度超快还没广告&…

微信小程序开发 快速学习 这篇就够了

目录 一、配置篇 &#xff08;1&#xff09;官网链接&#xff1a; &#xff08;2&#xff09;项目分析 &#xff08;3&#xff09;调试器 &#xff08;4&#xff09;预览体验 &#xff08;5&#xff09;配置文件 &#xff08;6&#xff09;配置pages &#xff08;7&…

Android Framework 之AMS

它管理了系统的四大组件:Activity、Service、ContentProvider、Broadcast。 它除了管理四大组件外&#xff0c;同时也负责管理和调度所有的进程 AMS相关目录结构 AMS代码主要在下面几个目录(AndroidQ上AMS相关部分功能移到了wm下)&#xff1a; frameworks/base/core/java/andro…

微信小游戏之三消(三)道具相关方法

设计一个 game class。负责了游戏的核心控制逻辑&#xff0c;包括游戏状态管理、方块和道具的生成与效果处理&#xff0c;以及游戏的重新开始和复活流程。通过这些方法&#xff0c;脚本实现了游戏的基本玩法和用户交互。 主要游戏控制方法 gameStart()&#xff1a;开始游戏&am…

攻防世界 re 新手模式 2

IgniteMe 32位无壳 一些简单信息&#xff0c;看关键函数 可以得到v7[i]的值 比较简单的逆向 #include<stdio.h> #include<string.h> int main() {char flag[40];char s[40];char str[]"GONDPHyGjPEKruv{{pj]XrF";char ch[] {0x0D, 0x13, 0x17, 0x11,…

AI到底有没有前景?到底要不要学习AI?

前言 在当今这个科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了一个热门话题。对于想要进入这一领域的学习者来说&#xff0c;心中难免会有一些疑问&#xff1a;“AI到底有没有前景&#xff1f;”、“我到底要不要学习AI&#xff1f;”、“我学…

Vue使用阿里巴巴字体

阿里巴巴字体使用效果 字体包下载 官方下载链接 解压字体文件到指定的文件夹 引用字体文件 我的是uniApp的项目&#xff0c;所以在公共css样式中引用这个字体文件 /*每个页面公共css */ font-face {font-family: "alimamFont";font-weight: 400;src: url("~/s…

Could not install packages due to an EnvironmentError: [WinError 5]

Could not install packages due to an EnvironmentError: [WinError 5] 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城…

WordPress原创插件:启用关闭经典编辑器和小工具

WordPress原创插件&#xff1a;启用关闭经典编辑器和小工具 主要功能 如图所示&#xff0c;用于启用或禁用经典编辑器和经典小工具&#xff0c;以替代Gutenberg编辑器。 插件下载 https://download.csdn.net/download/huayula/89592822

[Windows CMD] 检测网络连通性 ping

ping 是一个非常常用的网络工具&#xff0c;用于测试网络连接的可达性和测量网络延迟。它通过发送 ICMP (Internet Control Message Protocol) Echo Request 数据包到目标主机&#xff0c;并等待接收回显应答 (Echo Reply) 来工作。ping 命令可以帮助您快速检测网络问题&#x…