turf hex-grid module

Usage no npm install needed!

<script type="module">
  import turfHexGrid from 'https://cdn.skypack.dev/@turf/hex-grid';




Takes a bounding box and the diameter of the cell and returns a FeatureCollection of flat-topped hexagons or triangles (Polygon features) aligned in an "odd-q" vertical grid as described in Hexagonal Grids.


  • bbox BBox extent in [minX, minY, maxX, maxY] order
  • cellSide number length of the side of the the hexagons or triangles, in units. It will also coincide with the radius of the circumcircle of the hexagons.
  • options Object Optional parameters (optional, default {})
    • options.units string used in calculating cell size, can be degrees, radians, miles, or kilometers (optional, default 'kilometers')
    • options.properties Object passed to each hexagon or triangle of the grid (optional, default {})
    • options.mask Feature<Polygon>? if passed a Polygon or MultiPolygon, the grid Points will be created only inside it
    • options.triangles boolean whether to return as triangles instead of hexagons (optional, default false)


var bbox = [-96,31,-84,40];
var cellSide = 50;
var options = {units: 'miles'};

var hexgrid = turf.hexGrid(bbox, cellSide, options);

var addToMap = [hexgrid];

Returns FeatureCollection<Polygon> a hexagonal grid

This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.


Install this module individually:

$ npm install @turf/hex-grid

Or install the Turf module that includes it as a function:

$ npm install @turf/turf