@mapbox/quilt

A light-weight utility library for patching static tiles together.

Usage no npm install needed!

<script type="module">
  import mapboxQuilt from 'https://cdn.skypack.dev/@mapbox/quilt';
</script>

README

Quilt

@mapbox/quilt is a light-weight utility library for patching together responses from the Mapbox Static Tiles API based on a given coordinate pair. It primarily takes its inspiration from @mapbox/abaculus.

It is put to best use when you need to generate quick debugging images of how several different Mapbox styles will look when rendered by the Mapbox Static Tiles API.

Usage

This library is written using a "constructor" framework. In order to retrieve an image, you must first initialize your "getImage" function with the desired configuration for your final image (coordinates, zoom level, & desired image size). You can then use your constructed function to return an image generated by stitching tiles together for one or more Mapbox styles at that location.

usage example

const { makeGetQuilt } = require('@mapbox/quilt');

const getTileQuilt = makeGetQuilt(coordinates, zoom, size);
const finalImage = getTileQuilt({ style, accessToken })
  .then((err, result) => {
    return result;
    // expected result:
    // {
    //   decoded: < decoded PNG >,
    //   original: < Buffer > 
    // }
  })

Developing

The package is tested on node v10 & v12, and cannot be assumed to work as expected when using alternate versions.

Tests are written with Jest & require that you have a valid Mapbox Access Token available via an environment variable (both MapboxAccessToken or MAPBOX_ACCESS_TOKEN will be considered valid variable names).

In order to ensure you are using the proper token, we recommend running the tests like so:

zsh:

MAPBOX_ACCESS_TOKEN=your.token npm test

bash:

export MAPBOX_ACCESS_TOKEN=your.token && npm test