My tile server pipeline is like this: GeoJSON -> MBTiles -> PBF. The tools that I used are tippercanoe and mbutil.

I'm not quite familiar with the vt-pbf, geojson-vt tools. Could anybody help explain the relationship of these tools compare to the mbutil,tippercanoe? I want to use the supercluster on the server side. How to achieve that? What to change on the mapboxGL-JS side?

Reference: https://www.mapbox.com/blog/supercluster/

1 Answer 1


Mbtiles are a SQLite database/file containing a tileset. A tileset can be a set of raster or mapbox vector tiles according to the MBtiles spec. Each set of mapbox vector tiles (.mvt) is a PBF encoding of geographic features.

geojson-vt can slice geojson into the JSON representation of a vector tile. supercluster.getTile(z, x, y) also JSON. vt-pbf can encode encode JSON with a correct vector tile scheme as pbfs. If you recursively get tiles where there are features until you hit your max zoom and save the tiles as pbf with at some_directory/z/x/y, you should be able to serve them directly. However, with large enough datasets and enough zoom, this approach may run out of memory.

If you want to store your generated mapbox vector tiles in a tileset (.mbtiles), you can call mb-utilsome_directory new_mbtiles_tileset.mbtiles.

Here's a more detailed comparison of the tools you mentioned:

|     tool     |         input          |         output          |
| geojson-vt   | geojson                | JSON with vt schema     |
| supercluster | Array of geojson points| JSON with vt schema     |
| vt-pbf       | JSON with vt schema    | pbf/.mvt                |
| mbutil       | a z/x/y-formatted      | .mbtiles                |
|              | directory of pbf/.mvt  |                         |
| tippecanoe   | geojson                | .mbtiles (simplified)   |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.