GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)

在了解了距离算法、方位角算法之后,就可以根据距离、方位角进行一些扩展应用。这里罗列如下:

一、计算线段中点(turf.midpoint)

基于球面距离、方位角,在已知一条线段两个端点后,该条线段的中点就很容易计算了。即:

1、根据线段两点,计算该线段长度(两点距离)(turf.distance)

2、根据线段两点,计算两点方位角(turf.bearing)

3、根据方位角及距离的一半计算该线段的中心点(turf.destination)

主要代码如下:

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)_第1张图片

效果如下:

二、计算线段长度(turf.length)

计算流程:

1、将所给线段的坐标点拆分,每相邻两点组成一条线段

2、分别计算每条线段的距离(turf.distance)

3、将每条线段的距离相加,即为所给线段的总长度。

主要代码如下:

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)_第2张图片

此核心算法在于线段的点两两组成一条线段,即对线段的点数据一段一段拆分,如:将一条线段

[

​ [115, -32],

​ [131, -22],

​ [143, -25],

​ [150, -34]

]

分别拆分组合为

线段1:

[

​ [115, -32],

​ [131, -22]

]

线段2:

[

​ [131, -22],

​ [143, -25]

]

线段3:

[

​ [143, -25],

​ [150, -34]

]

分别计算线段1的 距离、线段 2 的距离、线段 3 的距离,最后将各个计算距离相加,即为当前线段的总长度。

效果如下:

三、已知点 A 和 点集 P[B1,B2,B3…],求点集 P 中的点 B1、B2、B3… 中距离点 A 最近的点(turf.nearstpoint)

计算流程:

1、分别计算点 A 到 B1、B2、B3 的距离(turf.distance)

2、比较 A-B1、A-B2、A-B3 即 A 到各个点的距离,求最小值(turf.meta、turf.clone)

3、得到最小值,返回最近点,即 P 中的一点及其与 A 点的距离
主要代码如下:
GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)_第3张图片

效果如下:

GIS 算法原理记录总结二:距离、方位角、沿线上的点的扩展算法及其使用(一)_第4张图片

你可能感兴趣的:(GIS算法,算法,前端,图形渲染)