ector tiles作为一种可以在客户端设置样式的切片图层,可以通过各类软件进行发布,例如Portal for ArcGIS、geoserver、MapServer等,客户端通过mapbox gl加载,设置图层的样式。
当然,mapbox官方也提供了开源的切片工具,将矢量数据进行切片操作,切出来的切片类似于影像地图的切片。推荐使用tippecanoe进行切片,开源地址是:https://github.com/mapbox/tippecanoe。
此工具是C++写的,在macos 和linux上可以直接编译运行,windows版貌似没有提供,得需要cmake编译,所以尽量还是需要找一台linux或者macos的机器进行使用。
工具的使用是以命令行方式,例如:
tippecanoe -zg -o out.mbtiles --drop-densest-as-needed in.geojson
上述命令是将geojson数据,切成mbtile的切片包,其中-zg是切片到最大的地图缩放级别,-o out.mbtiles 是输出mbitles的文件路径,也可以以文件夹的形式进行存储,使用-e /tilepath,每次只能切成一种格式,
--drop-densest-as-needed 是为了减少文件大小,提升数据加载效率,进行的数据简化,最后in.geojson是输入的geojson文件,这个可以加载多个json文件,切在一起,在访问的时候,也能够单独访问某个图层。
切出的切片数据格式是.pbf,有些发布的mvt格式也是可以的。
其他参数 -z11 -Z4 表示是切4-11的切片;
还有过滤、缩放等参数,参见github上的信息;
有两点注意的:
数据在做切片前,要做成utf-8的编码格式,要不然会出现乱码的情况;
切片在文件夹和mbtiles里边的column方向编号是不一样的,是因为y方向的原点是不一样的,这个在发布数据的时候要注意。
文件夹的切片用web服务器就可以进行发布,mbtiles需要一个简单的server读取其中的数据,进行返回。