GIS开发:GeoJSON文件压缩

Posted 技术几句杂谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIS开发:GeoJSON文件压缩相关的知识,希望对你有一定的参考价值。

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

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


    QGIS的数据抽吸功能


  • 服务端数据压缩(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中能够存储对象的对应属性信息,在地图不必要绘制的,可以删除掉,这样能够减少数据量。


    疫情当前,尽量减少外出!


                武汉加油,中国

以上是关于GIS开发:GeoJSON文件压缩的主要内容,如果未能解决你的问题,请参考以下文章

压缩大的GeoJSON / Shapefle数据集以在Web浏览器上查看

如何在Mac中压缩文件

将 geoJson 数据转换为 sql server 空间数据类型(GIS)

Python 解压缩Zip和Rar文件到指定目录

CAD 在openlayers 中实现思路

关于Vue+ECharts 地图引用空间文件或GIS(.shp)