Skip to content

概述

本文档介绍 Turf.js 作为一个模块化地理空间 JavaScript 库,涵盖其目的、架构和组织结构。有关各个模块实现的详细信息,请参阅几何操作测量与变换空间分析。有关包组织和分发详细信息,请参阅包结构

什么是 Turf.js

Turf.js 是一个用 JavaScript 编写的模块化地理空间引擎,用于空间分析操作。该库提供了 100 多个可独立或一起使用的独立模块,同时支持客户端 Web 应用程序和服务器端 Node.js 环境。

核心功能包括:

  • 几何操作:对空间要素进行缓冲区、交集、并集、差集操作
  • 空间分析:聚类算法、统计分析和插值
  • 测量:具有测地线精度的距离、面积、方位角计算
  • 数据工具:GeoJSON 创建、验证和转换辅助函数
  • 网格生成:六边形、方形、三角形和点网格系统

仓库架构

SVG
100%

模块组织和依赖

代码库遵循分层依赖架构,其中高级模块依赖于基础工具,但绝不反向依赖。

核心模块依赖

SVG
100%

数据处理流水线

所有 Turf.js 模块遵循一致的数据流模式,标准化输入验证、坐标处理和输出生成。

标准处理流程

SVG
100%

包分发策略

Turf.js 通过其模块化架构和构建系统支持多种使用模式。

分发方法目标用例入口点格式
独立模块Tree-shaking,最小化打包@turf/distance, @turf/bufferESM/CJS
主包完整功能@turf/turfESM/CJS
浏览器包直接脚本包含turf.min.jsUMD

构建系统配置

SVG
100%

运行时和浏览器支持

Turf.js 面向现代 JavaScript 运行时,具有特定的兼容性要求。Node.js 被视为一等公民,支持 Active 和 Maintenance LTS 版本。浏览器支持遵循 Browserslist 标准:> 0.25%, last 2 versions, fully supports es5, not dead

构建系统使用 Babel 转译以确保浏览器包的 ES5 兼容性,而独立模块则使用现代 JavaScript 功能发布,以支持支持这些功能的环境。