文中代码可以在我的GitHub中找到: https://github.com/QingyaFan/data-visualization
前言
切片技术的简单介绍,以及传统栅格图片切片的不足
现在最流行的地图底图技术是栅格切片底图,它们本质上是将空间数据分别渲染为不同缩放级别的地图图片,然后将各个级别的图片按照一定规则切分,按照一定的 “规则组织”,存储到硬盘或数据库中,构成一幅完整的地图。
图1 切片概念图
相对于其他技术,切片地图有其优越性,例如有效减少了传输数据体积,多级缩放等。然而,栅格地图也有一些短处,缺乏灵活性、实时性,数据完整性受损是比较突出的问题,这正是栅格数据的问题:
- 缺乏灵活性,切片一旦渲染切分,样式不可定制,要在渲染前提前定制好;
- 缺乏实时性,由于栅格切片是在服务器端预先渲染好,当现实世界地物有变化时,并不能实时显示到地图中,需要经过再次渲染;
- 数据完整性受损,渲染切片过程是将地理坐标数据转换为图片的过程,若要查询图片的多边形的属性,需要到服务器重新请求。
GIS 中数据按照存储格式可以分为矢量和栅格,矢量不同于栅格数据,比较灵活,数据完整,因此综合矢量数据和栅格切片地图的优势,会是一个比较不错的方案,boom,这就是 “矢量切片”。
矢量切片
矢量切片的特点、优势,以及用到的技术细节
矢量切片可以以三种形式呈现:GeoJSON、TopoJSON 和 MapBox Vector Tile(.mvt),矢量切片技术继承了矢量数据和切片地图的双重优势,有如下优点:
- 对于栅格切片,更灵活,更细粒度的数据划分,要素级别;
- 数据信息接近无损,但体积更小,请求指定地物的信息,直接在客户端获取,无需再次请求服务器;
- 样式可改变和定制(重点),矢量切片可以在客户端或者服务器端渲染,可以按照用户赋予的样式渲染;</