当前位置: 首页 > news >正文

GIS海量数据前端加载优化策略

大数据是当今不可避开的一个话题,GIS领域也同样不可避免。无论何种框架何种技术手段,解决大数据所带来的gis问题都显得尤为必要。

1.海量数据的产生。

实际上对于一个以地图为核心的应用来讲,出现海量数据还是挺常见的,比如一幅地图上成千上万个POI(兴趣点),一个省乃至全国的所有道路,包含羊肠小道等,大批量的数据要如何展示?

再小到一个省级的,市级的项目,几十万个地块等等,海量数据无时无刻不存在于GIS系统中。

2.解决方案

我们先来按照功能来给出解决方案。

如果需求只是展示海量数据的话,有以下这么几种处理方案:

矢量切片

采用切片的方式将数据在服务端提前进行预切片,这样能达到分级别分层次去加载数据,减小请求量和服务器压力。当然矢量切片的缺点在于目前国内的矢量切片还是依赖于一些开源服务器(GeoServer等),虽然也有小众化的切片工具可使用,但是效果并不是很好。而且矢量切片解决不了真正的“海量”的问题。数据量一旦过多,百万级的使用切片也不行。

数据结构层面的优化

这部分的优化其实不依赖于具体的框架和语言,无论使用何种框架和技术都可以考虑在这方面进行优化。

首先从数据库来讲,海量数据是否可以简化存储结构?是否可以分库分表?另外即使是空间数据库也可以建立索引,加快检索速度。mybatis的缓存是否可以安排?

代码逻辑层面的优化

服务端来讲,是否可以通过集群部署?微服务?将数据业务分解成多个服务,另外服务器本身集群部

相关文章:

  • 自组织是管理者和成员的双向奔赴
  • shell脚本使用sftp上传文件
  • PreparedStatement,根据条件查询总数
  • 第十八天计算机视觉之语义分割
  • Multiprocessing package - torch.multiprocessing
  • 【Linux操作系统】--多线程(二)--条件变量
  • Apache Iceberg理解和应用
  • 算法系列九:十大经典排序算法之——堆排序
  • lodash笔记(集合篇)
  • 云原生之Kubernetes:17.详解Apiserver和RBAC
  • 反欺诈模型常用开发工具
  • 【校招VIP】[产品][一本][7分]进一步描述用户的痛点和画像
  • StarRocks入门之路
  • /run/containerd/containerd.sock connect: connection refused
  • 中枢神经系统解剖结构图,神经系统的解剖结构
  • [deviceone开发]-do_Webview的基本示例
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 2017前端实习生面试总结
  • 230. Kth Smallest Element in a BST
  • Facebook AccountKit 接入的坑点
  • markdown编辑器简评
  • Mybatis初体验
  • nginx 负载服务器优化
  • Python - 闭包Closure
  • Redis 懒删除(lazy free)简史
  • redis学习笔记(三):列表、集合、有序集合
  • 闭包--闭包作用之保存(一)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 来,膜拜下android roadmap,强大的执行力
  • 前嗅ForeSpider采集配置界面介绍
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 问题之ssh中Host key verification failed的解决
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • C# - 为值类型重定义相等性
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #DBA杂记1
  • (1)Android开发优化---------UI优化
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (定时器/计数器)中断系统(详解与使用)
  • (分布式缓存)Redis持久化
  • (论文阅读30/100)Convolutional Pose Machines
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (实战篇)如何缓存数据
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)appium-desktop定位元素原理
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)Unity3DUnity3D在android下调试
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理出现中文乱码的情况
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException