首页 / Turf.js / 使用示例
包围盒计算
同一组数据,切换成只看点、只看线、看全部,外包矩形随之变化。 矩形四个数字的顺序是「西、南、东、北」。
源码与运行效果
说明
数据集在三个之间循环:四个散点、一条折线、两者的合集。
每次调用 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 公里, 两者不能混用。
外包矩形有留白:斜向排列的点会让矩形明显大于实际形状。 做范围查询时它是安全的下界,做覆盖率估算时则会高估。