经纬志
首页 / Turf.js / 使用示例

网格生成

把一块研究范围切成六边形单元,是密度统计、热区聚合的常用前置步骤。 单元尺寸以公里给定,不受地图投影影响。

Turf.js 7.x · 更新 2026-10-27
源码与运行效果
运行效果

说明

输入是一个包围盒,不是面。函数按给定尺寸铺满整个矩形, 超出范围的单元不会自动裁剪。要对齐到某条行政边界时, 用返回结果与面求交集,或者用 polygon 作为 mask 参数。

var grid = turf.hexGrid(bbox, 2, { units: 'kilometers' });

console.log(grid.features.length);        // 单元数量
console.log(turf.area(grid.features[0]) / 1e6);   // 单格面积,km²
函数单元形状适用
hexGrid六边形密度统计,邻接关系比方形更均匀
squareGrid正方形与栅格数据对齐
pointGrid点阵规则采样点

单元尺寸从 1 公里调到 5 公里,数量按面积比例下降。 统计口径变化时,单格面积也会变化,展示密度必须说明所用尺寸, 否则两份结果无法比较。

六边形顶点在球面上按目标尺寸扩展,高纬度地区实际边长会轻微偏离设定值。 更大范围或更严格的等面积要求,应在投影坐标里生成网格再转回经纬度。