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

包围盒计算

同一组数据,切换成只看点、只看线、看全部,外包矩形随之变化。 矩形四个数字的顺序是「西、南、东、北」。

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

说明

数据集在三个之间循环:四个散点、一条折线、两者的合集。 每次调用 turf.bbox 取四个边界值, 再交给 bboxPolygon 转成矩形面用于绘制。

var box = turf.bbox(data);            // [西, 南, 东, 北]
var rect = turf.bboxPolygon(box);     // 矩形面

var widthKm = turf.distance(
  turf.point([box[0], box[1]]),
  turf.point([box[2], box[1]]),
  { units: 'kilometers' }
);
数据集矩形范围特点
四个点由最外四个点决定内部点不影响结果
一条折线包含所有顶点线段弯曲不会改变矩形
合集覆盖点与线与逐要素求包围盒再合并等价

宽度和高度分别用球面距离换算,避免把「经度差」直接当距离。 北纬 40 度附近,一度经度约 85 公里,而一度纬度约 111 公里, 两者不能混用。

外包矩形有留白:斜向排列的点会让矩形明显大于实际形状。 做范围查询时它是安全的下界,做覆盖率估算时则会高估。