本文使用 Zhihu On VSCode 创作并发布
最近研究了mapbox 公司提出的矢量瓦片技术,并将其应用到项目中,本篇文章对该技术进行下总结。 项目中,使用mapbox 开源的tippecanoe 工具进行瓦片切割,生成mbtiles格式的瓦片后,使用tileserver-gl作为静态瓦片服务器,发布瓦片服务。项目中,使用该方案,面对2千万左右的点数据,在8核16G的硬件配置下,浏览还是很顺畅的。
操作步骤
- 进行数据入库操作,对原始csv数据进行处理,导入到postgres空间库中。在数据库中,使用postgres分区表特性,建立分区表,将空间范围作为分区键值,将相同空间范围的数据存储在同一子表中。在入库过程中,提取点要素数据,生成geohash值,插入到数据库中。
在关系型数据库中,当数据量增大是,为了保证数据操作的效率,分库分表是一种常规操作。分表的含义是将原来存储在一张表格中的数据分散存储到多张表格中,减少单表存储的数据量,提高访问效率。在分表上,有水平分表和垂直分表两种方式。假定我们有十个果篮需要运输到商家,我们有两辆小推车。
- 水平分表的含义是将十个果篮按照重量、颜色等条件进行拆分,5个放在推车A,5个放在推车B.
- 垂直分表是将果篮拆开,橘子、苹果、梨等放在推车A,其余种类的水果放在推车B.
比喻的重点是在水平分表不对表结构进行拆分,按照条件将数据分散到不同的表格中,纵向分表对表结构进行拆分,将不同的列分散到不同的表格中。
post