GIS开发:GeoJSON文件压缩

简介: GIS开发:GeoJSON文件压缩

GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。
GeoJSON就是一种json文件的扩展,地图数据展示,传输到网页前端的时候,越来越多的使用GeoJSON数据,各类地图能够直接使用GeoJSON文件进行解析展示。对于点状的数据,坐标量较少,传输的数据量还可以,但是对于线状和面状数据,涉及到的坐标信息比较多,一个线或者面的geometry,在多的情况下,能达到几百、几千个,这样从服务器传输到客户端的数据,就有几兆或者几十兆,下载时间加长,就会影响客户端的体验度。
数据抽吸(smooth)

在数据精度要求不高的情况,可以对空间矢量进行抽吸,Arcmap、QGIS上都有对应的功能,这个操作是减少空间矢量的点数据,尽量保证空间上的轮廓,这个也能够减少空间数据的数据量。

QGIS的数据抽吸功能
image.png
服务端数据压缩(gzip、deflate)

这个是在服务器端,在数据传输的时候,提前对数据进行压缩,在返回到客户端的数据上,添加对应的数据压缩头,ex:Content-Encodin:gzip,一般的浏览器接收此数据头,能够进行数据的解析。

nodejs数据压缩简单代码

  zlib.gzip(_jsondata, (err, bufferdata) => {

  if (err) throw err;

  fs.writeFile('china.province.json.gz', bufferdata, (err1) => {

   if (err1) throw err1; 

   });

  });

测试压缩5M的GeoJSON数据,压缩完2M左右。

减少无用属性信息

GeoJSON中能够存储对象的对应属性信息,在地图不必要绘制的,可以删除掉,这样能够减少数据量。

相关文章
|
11月前
|
JavaScript 前端开发 定位技术
Cesium介绍和入门
这篇文章介绍了Cesium的基本概念及其在Web开发中的应用,包括如何集成Cesium并使用它来创建和展示3D地图。
1084 4
Cesium介绍和入门
|
XML Java 测试技术
通义灵码与githubcopilot的对比评测
本文评测了通义灵码,与github copilot在一些代码编写能力上面的能力比较。 虽然github copilot要强很多,但灵码目前的能力也不算很弱,并且在一些小类上会做的更好一些。 值得试试看,也是免费的
57981 10
分享:mapbox-gl的CGCS2000修改版
分享:mapbox-gl的CGCS2000修改版
386 0
|
6月前
|
JSON JavaScript 前端开发
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
在使用Openlayers、leaflet、mapbox等地图控件的时候,GeoJSON几乎是不可避免打交道的数据类型,如果您想要从事gis行业相关的开发工作,本篇文章应该能为您带来一些帮助。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发 Python
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
这篇文章分享了作者在运行前端Vue项目时遇到的关于Python执行环境的问题和解决方法。问题是由于找不到Python可执行文件导致的编译错误,解决方法包括安装编译环境、卸载并重新安装出现问题的`node-sass`包,并重新执行`npm install`和`npm run dev`。
成功解决:Can‘t find Python executable “python“, you can set the PYTHON env variable.
|
SQL 前端开发 关系型数据库
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
16675 4
|
JSON JavaScript 定位技术
Echarts 绘制地图(中国、省市、区县),保姆级教程!
Echarts 绘制地图(中国、省市、区县),保姆级教程!
|
存储 资源调度 JavaScript
Vue3如何使用Pinia详细介绍、pinia持久化存储(pinia-plugin-persistedstate详细配置)
Vue3如何使用Pinia详细介绍、pinia持久化存储(pinia-plugin-persistedstate详细配置)
|
Web App开发 监控 JavaScript
Vue 3 的内存管理
【5月更文挑战第31天】Vue 3 的内存管理
335 2
|
JavaScript 数据格式 容器
echarts图表-饼图、柱状图、折线图、散点图之间相互切换
echarts图表-饼图、柱状图、折线图、散点图之间相互切换
640 0