用Mapmost聚类图分析世界

news2024/11/15 11:58:20

聚类地图是一种数据可视化工具,能够帮助用户在地图上直观地显示大量地理数据点。当数据点过多时,单独显示每个点会使地图变得混乱,而聚类地图通过将相近的数据点聚集在一起,减少了视觉复杂性,便于分析和理解。聚类地图广泛应用于城市规划、市场分析等领域,而Mapmost提供了便捷的接口可以帮助用户快速生成一份聚类分析地图。

1. 根据分析目标获取数据集

首先根据要分析的对象,获取数据集并将其组织成GeoJson的格式,以2024年7月份的全国房价数据为例(数据来源于统计公报等网络公开信息),组织后的部分数据如下所示。

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "city": "上海",
        "price": 59992
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          121.473667,
          31.230525
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "city": "深圳",
        "price": 59855
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          114.057939,
          22.543527
        ]
      }
    },
    //......
  ]
}

2. 加载聚类图层

2.1. 加载数据

通过GeoJSON格式加载数据,并将其添加到地图中:

map.on('load', () => {
  map.addSource('clusters', {
    type: 'geojson',
    data: 'data.geojson',  	// 数据路径
    cluster: true,					// 是否聚类
    clusterMaxZoom: 14, 		//最大聚合层级,低于该层级不再聚合
    clusterRadius: 50, 			// 点聚合半径
    clusterProperties: {    // 聚类后的点的属性
      sum: ['+', ['get', 'price']],
      count: ['+', 1],
    }
  });
});

如上所示,聚类图层需要在加载数据源的时候打开聚类设置,聚类后点的属性由clusterProperties指定,其对应的值会由指定表达式累积计算。

2.2. 设置聚类图层样式

对添加的数据设置图层样式以可视化聚类结果:

map.addLayer({
  id: "clusters-single",
  type: "circle",
  source: "clusters",
  filter: ["!", ["has", "point_count"]],
  paint: {
    "circle-color": "#21984c",
    'circle-stroke-width': 6,
    'circle-stroke-color': 'rgba(33,152,76,0.4)',
    "circle-radius": 5,
  }
});
map.addLayer({
  id: 'cluster-single-text',
  type: 'symbol',
  source: 'clusters',
  filter: ['!', ['has', 'point_count']],
  layout: {
    "text-field": ['get', 'price'],
    'text-size': 12
  },
  paint: {
    "text-color": "#fff",
    "text-halo-color": "#333",
    "text-halo-width": 1,
  }
});
map.addLayer({
  id: "clusters",
  type: "circle",
  source: "clusters",
  filter: ["has", "point_count"],
  paint: {
    "circle-color": [
      "step", ["get", "point_count"],
      "#21984c", 50,
      "#e27530", 120,
      "#e61f16"
    ],
    'circle-stroke-width': 6,
    'circle-stroke-color': [
      'step', ['get', 'point_count'],
      'rgba(33,152,76,0.4)', 50,
      'rgba(226,117,84,0.4)', 120,
      'rgba(230,31,22,0.4)',
    ],
    "circle-radius": [
      "step", ["get", "point_count"],
      10, 20,
      20, 75,
      25, 150,
      30
    ],
  }
});
map.addLayer({
  id: "cluster-text",
  type: "symbol",
  source: "clusters",
  filter: ["has", "point_count"],
  layout: {
    "text-field": [
      'number-format',
      ['/', ['get', 'sum'], ['get', 'point_count']],
      { 'min-fraction-digits': 0, 'max-fraction-digits': 2 }
    ],
    "text-size": [
      'step', ['get', 'point_count'],
      10, 8,
      20, 14,
      25, 18,
      20
    ],
  },
  paint: {
    "text-color": "#fff",
    "text-halo-color": "#333",
    "text-halo-width": 1,
  }
});

如上所示,通过point_count属性可以区分当前渲染点是否是聚类点,对于聚类点和非聚类点我们可以采取不同的设置进行显示。对于非聚类点,我们直接显示出其对应价格,并设置一个默认的颜色。对于聚类点,我们可以通过point_count属性获取到当前聚类点是有多少个点聚合而成的,同时根据我们之前设定的聚类属性可以获取到其对应点簇的房价总和,进而计算出平均房价,通过这些值我们就可以很好的将一个区域附近的房价数据自动聚合计算。最终效果如下图所示:

3. 结语

聚类地图是一种有效的数据可视化工具,通过Mapmost的强大功能,我们可以轻松创建和展示聚类地图。这种地图的优势在于它能将复杂的数据以直观的方式呈现,使得用户能够快速理解数据分布情况。未来,我们可以进一步扩展聚类地图的功能,例如添加交互效果、过滤功能等,以满足更复杂的需求。

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

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

相关文章

在Linux上安装中创中间件InforSuiteAS(二进制文件安装)

在Linux上安装中创中间件InforSuiteAS(二进制文件安装) 前言1、环境准备1.1 支持的操作系统1.2 依赖软件 2、安装步骤2.1 下载并解压安装包2.2 执行安装2.3 修改防火墙设置2.4 启动InforSuiteAS2.5 InforSuiteAS常用命令2.6 验证安装 3、常见问题及解决方…

【Petri网导论学习笔记】Petri网导论入门学习(三)

Petri网导论入门学习(三) Petri 网导论学习笔记(三)定义 1.4定义 1.5定义 1.6定义 1.7 Petri 网导论学习笔记(三) 如需学习转载请注明原作者并附本帖链接!!! 如需学习转载…

Axure设计之全屏与退出全屏交互实现

在Axure RP中,设计全屏与退出全屏的交互功能可以极大地提升用户体验,尤其是在展示产品原型或进行演示时。本文将详细介绍如何在Axure RP中通过结合JavaScript代码实现全屏与退出全屏的交互效果。 ​ Axure原型设计web端交互元件库:https://…

网络安全产品认证证书大全(持续更新...)

文章目录 一、引言二、《计算机信息系统安全专用产品销售许可证》2.1 背景2.2 法律法规依据2.3 检测机构2.4 检测依据2.5 认证流程2.6 证书样本 三、《网络关键设备和网络安全专用产品安全认证证书》3.1 背景3.2 法律法规依据3.3 检测机构3.4安全认证和安全检测依据标准3.5 认证…

9月→2024年计算机与信息安全国际会议

【9月→郑州、吉隆坡双会场】 Springer-LNICST 🔥🔥2024年计算机与信息安全国际会议(WCCIS 2024) 会议时间:2024年9月20-22日 论文收录:EI,Scopus稳定检索 网络安全,访问控制&am…

了解MySQL 高可用架构:主从备份

为了防止数据库的突然挂机,我们需要对数据库进行高可用架构。主从备份是常见的场景,通常情况下都是“一主一从/(多从)”。正常情况下,都是主机进行工作,从机进行备份主机数据,如果主机某天突然意外宕机,从机…

Android 13 固定systemUI的状态栏为黑底白字,不能被系统应用或者三方应用修改

目录 一.背景 二.思路 三.代码流程 1.colos.xml自定义颜色 2.设置状态栏的背景颜色 3.对View进行操作 ①.对Clock(状态栏左侧的数字时钟)进行操作 ②.对电池(BatteryMeterView)进行操作 4.锁屏状态栏 5.patch汇总 一.背景 客户需求将状态栏固定成黑底白字,并且不能让系…

红外小目标检测:基于深度学习

目录 ​编辑 1.红外成像技术的优势 2.红外小目标检测的基本原理 常用方法 1. 背景抑制法 2. 基于滤波的方法 3. 基于模型的方法 4. 基于深度学习的方法 5. 多传感器融合方法 3.代码实战 案例背景 数据准备 模型选择 代码实现 讲解 4.应用场景 5.未来发展趋势 …

NISP 一级 | 4.2 操作系统的安全威胁

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:漏洞和漏洞扫描 对计算机系统安全威胁最大的就是系统本身的漏洞,只有存在漏洞,黑客才有机会入侵我们的计算机系统。具统计证明,99% 的黑客攻击…

基于spring实现博客项目的删除和更新(五)

8. 实现用户退出 前端直接清除掉token即可. 实现客⼾端代码 <注销>链接已经提前添加了onclick事件 &#xff0c;在common.js中完善logout⽅法 function logout(){localStorage.removeItem("user_token");location.href "blog_login.html"; } 点击…

Adobe 将推出人工智能视频模型 Firefly 视频模型: 最长 5 秒,支持视频编辑

最近&#xff0c;Adobe 发布了一款全新的创意工具–Adobe Firefly 视频模型。 这一创新工具标志着 Adobe 在现有 Firefly 生成式人工智能图像模型的基础上&#xff0c;大胆涉足人工智能生成视频领域。 Adobe 表示&#xff0c;该模型是经过道德训练的&#xff0c;使用的数据都是…

数字孪生之-3D可视化

定义&#xff1a; 广义&#xff1a;一切现实物体的虚拟化表达&#xff0c;都可以算是广义的数字孪生行业&#xff1a;数字孪生体应该是与现实物体一对一映射、实时数据连接、有数据模型和对应的数据的 个人理解数字孪生的实现还是基于数据驱动&#xff0c;加上上帝视角&#xf…

微软九月补丁星期二发现了 79 个漏洞

微软将在2024 年 9 月补丁星期二修复 79 个漏洞。 微软有证据表明&#xff0c;发布的四个漏洞被野外利用和/或公开披露&#xff1b;所有四个漏洞均已在CISA KEV上列出。微软还在修补四个关键的远程代码执行 (RCE) 漏洞。 不同寻常的是&#xff0c;微软本月尚未修补任何浏览器…

Leetcode面试经典150题-141.环形链表

题目比较简单&#xff0c;重点是理解思想 解法都在代码里&#xff0c;不懂就留言或者私信 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public…

Transformer学习(2):自注意力机制

回顾 注意力机制 自注意力机制 自注意力机制中同样包含QKV&#xff0c;但它们是同源(Q≈K≈V)&#xff0c;也就是来自相同的输入数据X&#xff0c;X可以分为 ( x 1 , x 2 , . . , x n ) (x_1,x_2,..,x_n) (x1​,x2​,..,xn​)。 而通过输入嵌入层(input embedding)&#xff0c…

环境搭建1

预编译.h 这里面包含一些常用的头文件 #pragma once #include<SDKDDKVer.h> #include<stdio.h> #include<tchar.h> #include<bitset> #include<conio.h> #include"atlstr.h" #include<atlimage.h> #include<iostream> #…

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(2) (*****生成数据结构类的方式特别有趣****)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(1)-CSDN博客 本节内容 实现目标 通过已经得到的Excel表格…

算法-图论(建图,拓扑排序)

文章目录 建图的三种方式邻接矩阵邻接表链式前向星 拓扑排序拓扑排序基础原理介绍拓扑排序步骤解析拓扑排序模板leetcode-课程表 建图的三种方式 我们建图的三种方式分别是邻接矩阵, 邻接矩阵, 链式前向星 邻接矩阵 假设我们的点的个数为N个, 我们就把他们的下标依次标为1, …

Java邮件:如何配置以实现自动化邮件通知?

Java邮件发送性能优化策略&#xff1f;怎么实现Java 发邮件功能&#xff1f; Java邮件API提供了一个强大且灵活的框架&#xff0c;使得开发者能够轻松地集成邮件发送功能到他们的应用程序中。AokSend将详细介绍如何配置Java邮件&#xff0c;以实现自动化邮件通知。 Java邮件&…

大数据新视界 --大数据大厂之数据治理之道:构建高效大数据治理体系的关键步骤

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…