WebGIS 开发中常用的 JavaScript 库
在浏览器端进行WebGIS开发时,使用合适的JavaScript库可以大大提升效率和功能性。本文将介绍一些常用的JavaScript库,涵盖了数据格式转换、空间坐标系操作、几何运算、地图库扩展以及其他实用工具。这些库可以帮助你轻松处理各种GIS任务。
一、数据格式转换
1.1、WKT 几何数据转换
如果你需要在不同的GIS数据格式之间进行转换,以下这些库都能派上用场,具体选择取决于你的需求和项目体积考虑。

1.2、前端直接读取 GeoPackage - @ngageoint/geopackage
GeoPackage是一种单文件地理数据存储格式,可以被QGIS、ArcGIS等GIS工具读取。@ngageoint/geopackage库允许你在浏览器中直接读取GeoPackage文件中的地理数据。
1.3、前端直接读取 Esri Shapefile - ts-shapefile
ts-shapefile库使你能够在浏览器中解析Esri Shapefile文件,这是一种常见的GIS数据格式。它支持类型提示,并且适用于Leaflet.js等地图库。
1.4、把 GDAL 搬进浏览器 - gdal3.js
GDAL是一个强大的GIS库,gdal3.js通过WebAssembly将其引入浏览器中。这个库支持多种格式,但需要注意其较大的体积。
二、空间坐标系的操作
2.1、重投影 - proj4
proj4是JavaScript版本的C++投影库PROJ。它用于坐标的转换和重投影,支持各种坐标系的转换。
2.2、纠正“火星”加密坐标 - gcoord
gcoord库专门用于解决“火星坐标系”、“百度坐标系”等加密坐标问题。它可以将加密后的坐标准确纠正,并且支持坐标数组和 GeoJSON 的转换。
2.3、空间坐标系的 WKT 定义 - spatialreference
spatialreference库允许你根据WKID获取坐标系的WKT定义。它可以从在线API请求查询坐标系信息。
2.4、空间坐标系的 PROJ 定义 - epsg
如果你没有在线环境,可以使用epsg库获取坐标系的PROJ4定义。它包含了一个JSON字典。
2.5、从坐标系定义字符串推导 WKID - get-epsg-code
get-epsg-code库的作用与2.3和2.4相反,它从坐标系定义字符串中推导WKID。
2.6、对 GeoJSON 的重投影 - reproj-helper、reproject
这两个库用于对GeoJSON对象进行重投影操作,支持GeoJSON校验。
三、简易空间分析与几何运算
3.1、JTS 的移植 - jsts
jsts库是JTS(Java Topology Suite)的JavaScript版本,用于进行空间几何运算。它包含了各种几何操作功能。
3.2、给GeoJSON 设计的简易版 “turf” - @terraformer/spatial
@terraformer/spatial库是一个简单版本的turf,用于进行GeoJSON对象的基本空间分析,如交集、凸包、包含等。
3.3、其他一些几何图形变换与计算库
这些库用于处理各种几何图形操作,如三角化、生成网格等。earcut: 用于三角化离散几何多边形的库。hextile: 用于生成渔网网格的库。geometric: 提供简单的几何运算功能,可替代部分turf的需求。@flatten-js/core: 用于处理复杂几何图形的几何计算。
四、地图库扩展
4.1、为 ol、mapboxgl、leaflet.js 扩展绘图工具 - terra-draw
terra-draw是一个支持OpenLayers、Leaflet.js、MapboxGL等地图库的插件,用于绘制功能的扩展。它提供了绘制工具,使得在地图上进行标注和编辑更加便捷。
4.2、为 leaflet.js 扩展的绘图工具
这是专门为Leaflet.js开发的绘图插件,功能强大,适用于大多数2D绘制需求。

