mapbox全局空间过滤状态管理

贴个群号

WebGIS学习交流群461555818,欢迎大家

实现

在这里实现一个跟对应地图绑定的全局空间过滤状态的管理的思路与代码。

首先需求就是可能系统里面有个工具箱,这个里面可以选择不同的政区,比如对应的省市县,然后下面的一些功能,对应的请求,都是要根据这个来进行过滤的,比如要展示温度站点,如果政区选择的是河北省,那么下面所有的接口都是要根据河北省来的,如果选择的是保定市,那么对应的所有的接口中的政区都要改成保定市,这个需求是很合理的。

而且还要根据不同的地图维护不同的状态,因为我们可能有多个页面,每个页面都是不同的地图实例,各自维护各自的空间过滤状态。

这里我们采用的是vuex,在mutations里面维护了这样一个方法,用以根据ID来保存对应的空间过滤状态,会自己动态的生成对应的state状态。每次改变空间过滤状态的时候,就更新这个方法。

 // 在vuex里存上当前地图的空间过滤条件  type可以是不同的类型,比如政区和流域,node里面就存对应的政区编码或者流域编码,用于接口调用
 this.$store.commit('GEOMETRY_FILTER',{ mapId: this.mapId, type:‘’,node: {
     id:‘’,
   } })
  // 记录全局空间过滤的 选择
  GEOMETRY_FILTER (state, data) {
    const { mapId,type,node } = data
    if (Object.hasOwnProperty.call(state, mapId+'GeometryFilter')) {
      state[mapId+'GeometryFilter'] = {
        type:type,
        node:node
      }
    } else {
      // 初始化空间过滤
      Vue.set(state, [mapId+'GeometryFilter'], {
        type:type,
        node:node
      })
    }
  },

然后使用的话,会在computed里面定义这样一个变量,用于获取当前地图实例的空间过滤状态

    geometryFilter(){
      return this.$store.state['你的地图id'+'GeometryFilter']
    }

每次请求的时候,只需要getParam来重新包裹一下,就可以添加此时的空间过滤状态了

	obj=this.getParam(obj)
    //根据空间过滤来覆盖请求参数  region为政区  river为流域
    getParam(param){
        if(this.geometryFilter){
          const {type,node} = this.geometryFilter
          switch(type){
            case 'region':
                param = {
                  ...param,
                  'addvcd':node.id,
                  'levelnumber': node.levelnumber,
                  'rvcd':'',
                }
              break
            case 'river':
                param = {
                  ...param,
                  'addvcd':'',
                  'levelnumber':'',
                  'rvcd':node.wscd,
                  'hscd':node.wscd,
                }
              break
          }
      }
      return param
    },

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣爆刷第127天之动态规划五连刷(整数拆分、一和零、背包)

力扣爆刷第127天之动态规划五连刷(整数拆分、一和零、背包) 文章目录 力扣爆刷第127天之动态规划五连刷(整数拆分、一和零、背包)关于0 1 背包问题的总结01背包遍历顺序:完全背包遍历顺序: 一、343. 整数拆…

Lock-It for Mac(应用程序加密工具)

OSXBytes Lock-It for Mac是一款功能强大的应用程序加密工具,专为Mac用户设计。该软件具有多种功能,旨在保护用户的隐私和数据安全。 Lock-It for Mac v1.3.0激活版下载 首先,Lock-It for Mac能够完全隐藏应用程序,使其不易被他人…

【Pytorch】(十四)C++ 加载TorchScript 模型

文章目录 (十四)C 加载TorchScript 模型Step 1: 将PyTorch模型转换为TorchScriptStep 2: 将TorchScript序列化为文件Step 3: C程序中加载TorchScript模型Step 4: C程序中运行TorchScript模型 【Pytorch】(十三)PyTorch模型部署: T…

平衡二叉树、红黑树、B树、B+树

Tree 1、前言2、平衡二叉树和红黑树3、B树和B树3.1、B树的构建3.2、B树和B树的区别3.3、数据的存储方式 1、前言 本文侧重在理论方面对平衡二叉树、红黑树、B树和B树的各方面性能进行比较。不涉及编程方面的实现。而关于于平衡二叉树在C中的实现,我的上一篇文章平衡…

Nginx基本使用 反向代理与负载均衡

什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。 其特点是占有内存少,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好,而且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。 …

操作系统安全:Linux安全审计,Linux日志详解

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

【树莓派】yolov5 Lite,目标检测,树莓派4B,推理v5lite-e_end2end.onnx,摄像头实时目标检测

文章目录 YOLOv5 Lite: 在树莓派上轻松运行目标检测1. 环境配置2. 克隆项目3. 安装依赖项4. 下载模型权重5. 理解end2end的含义6. 示例推理7. 文件介绍8. 把文件弄到树莓派4B执行9. 进一步尝试fp16的onnx(行不通)10. 视频流检测 这里有大概的环境配置&am…

80个在线小游戏源码

源码简介 搭建80个在线小游戏网站源码,解压即可食用,支持在本地浏览器打开。 安装教程 纯HTML,直接将压缩包上传网站目录解压即可 首页截图 源码下载 80个在线小游戏源码-小8源码屋

Mac虚拟机装Windows Mac环境安装Win虚拟机教程 macbookpro安装windows虚拟机

在如今多元的数字时代,我们经常需要在不同的操作系统环境下进行工作和学习。而对于Mac用户来说,有时候需要在自己的电脑上安装Windows操作系统,以体验更多软件及功能,而在Mac安装Windows虚拟机是常用的一种操作。下面就来看看Mac虚…

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构

前端框架EXT.NET Dotnet 3.5开发的实验室信息管理系统(LIMS)成品源码 B/S架构 LIMS实验室管理系统 发展历史 实验室信息管理系统(LIMS),就是指通过计算机网络技术对实验的各种信息进行管理的计算机软、硬件系统。也就是将计算机网络技术与现…

新手答疑 | 零基础该怎么学习嵌入式?嵌入式Linux学习路线是什么?嵌入式开发板推荐?

很多初学者想要涉足嵌入式Linux开发领域,但往往在刚入门阶段,会因为初次接触到大量复杂的概念术语和深奥的技术文档感到压力重重,面对这些内容不知从何下手,感到十分迷茫,网上的内容也纷繁复杂,没有清晰的学…

《前端面试题》- React - 如何区分函数组件和类组件

问题 如何区分函数组件和类组件? 答案 可以使用instanceof 或者Component.prototype.isReactComponent。 示例 函数组件 export default function FunctionComonent() {if(FunctionComonent.prototype.isReactComponent){console.log(FunctionComonent是类组件…

白平衡简介

文章目录 白平衡的概念白平衡的调节常见的白平衡模式 白平衡的概念 白平衡是指摄影、摄像和显示技术中的一项重要概念,用于调节图像中的白色或中性灰色的色彩,使其看起来在不同光源条件下都是准确的白色或灰色。白平衡的主要目的是确保图像的色彩准确性…

C++的二叉搜索树

目录 基本概念 二叉搜索树的实现 插入结点 查找结点 删除结点 删除结点左为空 删除结点右为空 基于特殊情况的优化 删除结点左右不为空 基于特殊情况的优化 完整代码 二叉搜索树的实际应用 K和KV模型 改造二叉搜索树为为KV模型 基本概念 1、二叉搜索树又称二叉…

科技云报道:走入商业化拐点,大模型“开箱即用”或突破行业困局

科技云报道原创。 大模型加速狂飙,AI商业化却陷入重重困境。 一方面,传统企业不知道怎么将AI融入原始业务,另一方面,AI企业难以找到合适的商业化路径。 纵观海外AI玩家,已经有许多企业趟出了自己的商业化道路。 微…

Linux系统安全与应用【一】

目录 1.账号安全控制 1.1 系统账号清理 1.2 密码安全控制 1.3 命令历史限制 1.4 命令总结 2.系统引导和登录控制 2.1 使用su命令切换用户 2.2 限制使用su命令的用户 3.可插拔式认证模块PAM 3.1 linux中的PAM安全认证 3.2 PAM认证原理​编辑 3.3 PAM认证的构成 3.4 P…

项目管理中常用的三个工具:甘特图、看板、燃尽图

在日常项目管理的实践中,为了更有效地追踪项目进度、优化资源配置和提高团队协作效率,管理者常常会借助一些工具来辅助工作。这些工具的本质在于将抽象复杂的项目管理任务具象化、简单化,以更直观、方便的方式呈现出来。 以下介绍项目管理中…

基于Springboot的在线动漫信息平台

基于SpringbootVue的在线动漫信息平台的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 热门动漫 文章专栏 会员分享 论坛信息 动漫资讯 后台登录 动漫分类管…

在Spring Boot应用中实现阿里云短信功能的整合

1.程序员必备程序网站 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 2.导入坐标 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.0</version></dependency><…

SpringCloud之Feign集成Ribbon

Feign定义【可跳过】 Spring Cloud Feign是一个声明式的伪Http客户端&#xff0c;它使得写Http客户端变得更简单。其英文表意为“假装&#xff0c;伪装&#xff0c;变形”&#xff0c;是一个http请求调用的轻量级框架&#xff0c;可以以Java接口注解的方式调用Http请求&#x…
最新文章