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

openlayers处理大量Overlay渲染问题

问题背景

研发需求是提供离线地图,加载本地文件作为地图底图。后端提供了.shp.dbf.prj文件。由于 Openlayers 无法直接渲染shp数据,需要将shp数据格式转化为geojson格式,这可以在在线网站https://mapshaper.org/上实现,而.shp文件中提供了经纬和某些文字,文字注解在.dbf文件中。.shp.dbf都可以转换为geojson格式。

如果直接使用.shp转换后的geojson的文字信息,使用style.text实现标注,在 Openlayers v4.6.5 版本中,标注文字显示会有部分白色部分。所以需要使用 openlayers 的Overlay来实现。

当数据量很大,需要在 openlayers 上渲染所有的.dbf中的数据时,页面会非常卡顿,甚至放大缩小的功能都不能使用。数据量级就是全国所有的区县一级的名称和经纬度,大概 2800+ 条。

解决方法

碰到这种地图渲染大量数据的第一反应就是聚合显示,但是因为需求中的注解是区县名称,非业务信息,因此这种方式并不合适。但是可以借鉴这种层级显示数据的思路。

具体步骤如下:

  • 实时监听地图缩放级别

  • 获取当前地图的范围

  • 循环遍历数据,判断数据的经纬度是否在当前地图视图范围内。如果是,就调用Overlay类,显示文字

代码实现如下:

map.on("moveend", () => {
   
  var currZoom 

http://www.kler.cn/news/343268.html

相关文章:

  • 基于Qt的速度仪表盘控件实现
  • 后端增删改查的基本应用——一个简单的货物管理系统
  • LeetCode-2608. 图中的最短环【广度优先搜索 图,腾讯面试真题】
  • 【通信协议讲解】单片机基础重点通信协议解析与总结(IIC,CAN,MODBUS...)
  • 在 Ubuntu 上通过 Caddy2 部署 WebDAV 服务器
  • pip install ERROR: Could not install packages due to an OSError
  • 创建读取比特币1P类型地址
  • error: RPC failed; curl 16 Error in the HTTP2 framing layer
  • ssh封装上传下载
  • Matplotlib库
  • 区块链技术在金融行业的应用与未来发展趋势
  • MySQL存储JSON
  • 【图论】1 (最小生成树虚拟点思想)C.戴森球计划 题解
  • 基于SpringBoot+Vue的船舶监造系统(带1w+文档)
  • 2024双十一值得入手的好物品牌有哪些?精选五款双十一必入好物推荐
  • fastdfs下的doc文件可以访问,但是图片无法访问报错404,解决记录
  • Python知识点:结合Python技术,如何使用Fastai进行快速图像分类
  • .Net Core 接口或网站发布到IIS
  • springboot feign-httpclient 连接池配置
  • Windows系统编程 - 目录操作、磁盘、卷信息