Turf.js 是一个开源的空间分析库,由 Mapbox 提供。源码地址,在其官网中都有 Mapbox 作为底图的示例。
并且在 Mapbox 官网也推荐使用 Turf.js 作为空间分析库。
用 Turf.js 是因为最近一个项目中要用到线的分隔等功能,因为使用的是高德地图,对这一项空间分析、拓扑的功能不足,所以找到了这个库。
- 中文官网地址:https://turfjs.fenxianglu.cn/
- 官网地址:http://turfjs.org/
Turf 实现了常用的空间分析操作,例如生成缓冲区、计算等高线,建立 TIN 等等。以往只属于桌面 GIS 的分析功能,已经可以在浏览器中使用。
Turf 使用 JavaScript 编写,通过 npm 进行包管理。良好的模块化设计使得 Turf 不仅可用于浏览器端,还可以通过 Node.js 在服务器端使用。
Turf 原生支持 GeoJSON 矢量数据。GeoJSON 的优点是结构简单,并且得到了所有网页地图API的支持;但 GeoJSON 不支持空间索引,这个缺点可能会限制 Turf 处理大型文件的能力效率。
Turf 可以非方便地集成到 Leaflet.js 地图控件中,Mapbox 也为其提供了相应的 Mapbox.js 插件(可以在 mapbox.com 上发布的地图中支持空间分析?)。
Turf 适用于轻量级的 Web GIS 应用,这里的轻量级是指数据量上的轻量,而不是功能上的轻量。
以往的 WebGIS 应用中,空间分析往往由服务器端调用空间数据库完成分析过程,再将结果作为图层返回到浏览器端。这样的流程使得浏览器端的地图应用局限于图层展示与简单的查询。
浏览器端支持空间分析的意义在于,通过网页地图的不仅可提供地名搜索与路径查询(目前 Google Maps 的功能其实与十年前并没有太大区别),而且可以在浏览器中分享空间分析模型。以前的 WebGIS 功能当然也支持空间分析,但是分析过程需要在服务器端进行,本地能够进行的设置有限,现在使用 Turf.js 可以将分析过程完全移到本地,如果页面中提供了参数设置的话,可以在本地对模型进行修改并立即看到分析结果。这样的直接好处有两个方面:更渲的数据展示,以及更加复杂的用户交互(复杂交互本身需要空间分析作为基础)。
使用参考:https://blog.csdn.net/weixin_39150852/article/details/116758542