Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

slippy-grid

DenisCarriere56MIT2.3.0TypeScript support: included

Generates an iterator of TMS tiles from BBox or GeoJSON

gis, geo, geojs, geospatial, geography, geometry, extent, geojson, tile, slippy, map, bbox

readme

Slippy Grid

Build Status npm version MIT licensed

Standard - JavaScript Style Guide

Create slippy tile grid iterators from BBox.

Install

npm

$ npm install --save slippy-grid

web browser ES6

<script src="https://unpkg.com/slippy-grid/docs/slippy-grid.min.js"></script>

API

Table of Contents

single

Creates an Iterator of Tiles from a given BBox

Parameters

  • extent (BBox | Array<BBox> | GeoJSON) BBox [west, south, east, north] order or GeoJSON Polygon
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom

Examples

const grid = slippyGrid.single([-180.0, -90.0, 180, 90], 3, 8)
const {value, done} = grid.next()
//=value [x, y, z]
//=done true/false

Returns Iterator<Tile> Iterable Grid of Tiles from extent

geojson

Creates an Iterator of Tiles from a given GeoJSON

Parameters

  • extent FeatureCollection<(Polygon | MultiPolygon)> GeoJSON Polygon(s)
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom

Examples

const grid = slippyGrid.geojson(poly, 3, 8)
const {value, done} = grid.next()
// value => [x, y, z]
// done => true/false

Returns Iterator<Tile> Iterable Grid of Tiles from GeoJSON

getChildren

Creates an Iterator of children Tiles from a given parent tile

Parameters

  • parentTile GeoJSON Tile
  • maxZoom number Maximum Zoom

Examples

const parentTile = [0, 572, 10]
const maxZoom = 12
const grid = slippyGrid.getChildren(parentTile, maxZoom)
const {value, done} = grid.next()
// value => [x, y, z]
// done => true/false

Returns Iterator<Tile> Iterable of Tiles

all

All Tiles from a given BBox

Parameters

  • extent (BBox | Array<BBox> | GeoJSON) BBox [west, south, east, north] order or GeoJSON Polygon
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom

Examples

const tiles = slippyGrid.all([-180.0, -90.0, 180, 90], 3, 8)
//=tiles

Returns Array<Tile> Tiles from extent

bulk

Creates a bulk Iterator of Tiles from a given BBox

Parameters

  • extent (BBox | Array<BBox> | GeoJSON) BBox [west, south, east, north] order or GeoJSON Polygon
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom
  • size number Maximum size for bulk Tiles

Examples

const grid = slippyGrid.bulk([-180.0, -90.0, 180, 90], 3, 8, 5000)
const {value, done} = grid.next()
//=value Array<[x, y, z]>
//=done true/false

Returns Iterator<Array<Tile>> Bulk Iterable Grid of Tiles from extent

levels

Creates a grid level pattern of arrays

Parameters

  • extent (BBox | Array<BBox> | GeoJSON) BBox [west, south, east, north] order or GeoJSON Polygon
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom

Examples

const levels = slippyGrid.levels([-180.0, -90.0, 180, 90], 3, 8)
//=levels

Returns Array<GridLevel> Grid Level

count

Counts the total amount of tiles from a given BBox

Parameters

  • extent (BBox | Array<BBox> | GeoJSON) BBox [west, south, east, north] order or GeoJSON Polygon
  • minZoom number Minimum Zoom
  • maxZoom number Maximum Zoom
  • quick number Enable quick count if greater than number (optional, default 1000)

Examples

const count = slippyGrid.count([-180.0, -90.0, 180, 90], 3, 8)
//=count 563136

Returns number Total tiles from BBox

changelog

Changelog

2.2.0 - 2017-10-23

  • Fix Fiji GeoJSON extent using optimal tile cover
  • Support GeoJSON maximum/optimal tile cover

2.1.0 - 2017-03-30

  • Drop unique tiles (caused memory leaks on 1.3M+)

2.0.0 - 2017-03-17

  • Add all() method to return all tiles in a simple Array
  • Support Fiji Extent & any extent that share +180 & -180 degrees
  • Dropped GeoJSON precise extent (only support BBox of a GeoJSON)

1.4.0 - 2017-03-10

  • Fix levels() & count() not returning the correct results.

1.3.0 - 2017-03-04

  • Output browser bundle to docs UMD
  • Change rollup config
  • Rebuild library to pure ES6
  • Improved documentation
  • Add test case for slippyGrid.levels() => World Zoom Level 1

1.2.1 - 2017-03-02

  • Removed fastCount from Typescript definition
  • Lowered quick count to 1000

1.2.0 - 2017-02-22

  • Support overlapping GeoJSON properties with multiple different zoom levels
  • Filter by minZoom & maxZoom via GeoJSON properties

1.1.0 - 2017-02-21

  • Support Multiple GeoJSON Polygon
  • Added GeoJSON input support

1.0.0 - 2017-02-18

  • Stable release
  • Initialize library