前言 在WebGIS开发中,经常要用到一些常用的几何计算,GIS空间分析等功能,如点到线的距离、点与多边形的关系、计算面积、缓冲区分析、最短路径分析等,这样灵活性会更好;那怎么实现这些功能呢?有没有一些好用的前端GIS空间分析库?各有啥优缺点?JSTS JSTS是一个ECMAScript空间谓词和函数库,用于处理符合开放地理空间联盟发布的SQL简单特征规范的几何。JSTS也是成熟的Java库JTS的一个端口。 该项目的主要目标是为网络地图应用程序提供一个完整的库来处理和分析简单的几何图形,但JSTS也可以用作独立的几何图形库。 JSTS是通过AST到AST转换保留JTSAPI使用原始JTSJava源的自动翻译制作的,除了IO相关类,这些类已被选择性地手动移植并支持WKT、GeoJSON和OpenLayers3。 github地址:https:github。combjornharrtelljsts 核心特征:几何模型(点、线、面积)几何操作(例如,相交、联合、内部等)几何构造度量函数(例如笛卡尔二维距离、豪斯多夫距离)空间算法(例如缓冲区创建、线偏移、线简化)几何数学函数(如角度、距离等)空间结构(如四叉树和R树、Delauney三角测量)输入输出(例如WKT、GML)高精度算术 用法:http:bjornharrtell。github。iojstsvarreadernewjsts。io。WKTReader()varareader。read(POINT(200))varbreader。read(POINT(200))BufferAandBby40unitsaa。buffer(40)bb。buffer(40)IntersectionofAandBvarintersectiona。intersection(b)DifferenceofAandBvardifferencea。difference(b)UnionofAandBvaruniona。union(b)SymmetricdifferenceofAandBvarsymDifferencea。symDifference(b) 其中JSTS的基本概念与JTS相同。JTS基本概念和使用:https:blog。csdn。netruning9articledetails51890350 优点:功能强大的开源库支持平面坐标系,不限制于地理坐标系 缺点:文档缺少,示例缺少Turf Turf。js是JavaScript空间分析库,Turf实现了常用的空间分析操作,例如生成缓冲区、计算等高线,建立TIN等等。以往只属于桌面GIS的分析功能,已经可以在浏览器中使用。Turf使用JavaScript编写,通过npm进行包管理。良好的模块化设计使得Turf不仅可用于浏览器端,还可以通过Node。js在服务器端使用。Turf原生支持GeoJSON矢量数据。GeoJSON的优点是结构简单,并且得到了所有网页地图API的支持; github地址:https:github。comTurfjsturf 主要功能:Measurement测量计算CoordinateMutation坐标变换Transformation数据处理FeatureConversion要素转换MiscHelper数据工具Random随机生成数据Interpolation插值Joins空间关联Grids网格计算ClassificationAggregation聚合Meta元数据使用方法Assertions类型校验Booleans布尔类方法UnitConversion单位换算 用法:http:turfjs。org 前端编译工具或者node环境中使用:varcollectrequire(turfcollect);orinES6使用collect(points,polys,population,populationValues);全量引用importasturffromturfturf 浏览器中直接使用 turf缓冲区分析 turf绘制等值线 优点:功能强大的GIS开源库,持续更新文档全,示例多 缺点:turf。js只支持3857和4326的坐标系。其他坐标系都不支持geometric geometric是一个用于处理几何的JavaScript库。非常的小巧。 github地址:https:github。comHarryStevensgeometric 功能:提供了点,线,面的及相交判断的相交算法。网页浏览器 在原版中,geometric全局导出。您可以使用unpkg中的最新版本。或安装npm包npminstallvjmap来进行开发。 示例: 最短路径算法https:vjmap。comdemodemomapgeogeoFindShortestPath 等值线分析算法https:vjmap。comdemodemomapgeogeoVectorContour 示例github地址https:github。comvjmapvjmapplayground 优点:对一些业务和专业功能进行了一定程序的封装文档较全,示例丰富 缺点非开源GIS空间分析功能较弱