计算两条线或多边形的交点(LineString | MultiLineString | Polygon )

计算两条线或多边形的交点(LineString | MultiLineString | Polygon )

  • Turf简介
    • 使用方法
    • 效果展示
    • 下载链接

Turf简介

Turf是用JavaScript编写的模块化GIS地理空间引擎,用于空间分析的JavaScript库。它包括传统的空间操作,用于创建GeoJSON数据的辅助函数,以及数据分类、空间计算和统计工具。
使用Turf中的line-intersect模块可以获取任何LineString或Polygon GeoJSON的相交点。

使用方法

  1. 页面中引入turf.min.js*,文末提供此JS的下载链接;
// 选择你自己项目存放js的src
<script src="js/turf.min.js" type="text/javascript"></script>
  1. 将要计算的两条线的点集初始化为turf的lineString类型
// 选择你自己项目存放js的src
var line1 = turf.lineString([[126, -11], [129, -21]]);
var line2 = turf.lineString([[123, -18], [131, -14]]);
var intersects = turf.lineIntersect(line1, line2);

intersects 即为返回的两条线的交点,返回类型为FeatureCollection ,若无交点,返回为空集合
turf.lineString()中的参数支持如下类型Geometry | FeatureCollection | Feature<(LineString | MultiLineString | Polygon | MultiPolygon)>

  1. 实际应用中的代码;
var line1 = turf.lineString(drawFeature.getGeometry().getCoordinates());
var line2 = turf.lineString(selectFeature.getGeometry().getCoordinates());
var intersects = turf.lineIntersect(line1, line2);
console.log(intersects);

效果展示

下载链接

turf.min.js下载

你可能感兴趣的:(openlayers,turf,GIS,Turf,交点算法,两线相交,GIS,openlayers)