矢量金字塔实践指南 ================== 矢量金字塔是一种能够快速显示大规模空间几何数据的而设计的一种结构,其中会涉及到地理数据概化以及瓦片生成。 在安装好 Yukon 以后,我们可以使用 ``create extension yukon_vector_pyramid;`` 来创建矢量金字塔扩展。 1. 导入数据 这里我先新建一个数据库 ``pyramidtest``: .. code:: sql create database pyramidtest; 创建完成后,我们可以通过 shp2pgsql ,QGIS ,超图桌面软件将原始数据导入到 Yukon 数据库中。这里我们导入南宁的地理数据集。导入完成后在 DBeaver 显示如下: |image1| 这里我们就可以看到导入后的数据。 2. 生成概化数据 这里我们的数据集名字为 ``nanning_3857``, geometry 的列名为 ``smgeometry``\ ,我们可以使用 ST_BuildPyramid 来生成概化数据。 .. code:: sql select ST_BuildPyramid('nanning_3857', 'smgeometry', '[ {"level": 1,"attribute": ["smid"]}, {"level": 2,"attribute": ["smid"]}, {"level": 3,"attribute": ["smid"]}, {"level": 4,"attribute": ["smid"]}, {"level": 5,"attribute": ["smid"]}, {"level": 6,"attribute": ["smid"]}, {"level": 7,"attribute": ["smid"]}, {"level": 8,"attribute": ["smid"]}, {"level": 9,"attribute": ["smid"]}, {"level": 10,"attribute": ["smid"]}, ]'); 执行完成后,我们就可以在 ``pyramid_columns`` 的元信息表中,查看我们新生成的概化数据: |image2| 3. 生成矢量瓦片 生成概化后的数据后,我们就可以使用 ``ST_BuildTile`` 生成矢量瓦片: .. code:: sql select st_buildtile('nanning_3857','smgeometry',2,10); 执行完成后就可以在 DBeaver 中看到矢量瓦片数据: |image3| 其中 id 为 x,y,z 组合而成。 1. 显示 生成的矢量金字塔我们可以在超图的 IDesktop 软件中查看: |image4| 相比于原始数据集,我们可以快速显示空间地理数据。 .. |image1| image:: /../_static/images/pyramid/nanningdata.png .. |image2| image:: /../_static/images/pyramid/pyramid_columns.png .. |image3| image:: /../_static/images/pyramid/pyramidtile.png .. |image4| image:: /../_static/images/pyramid/pyramid_display.png