【发布时间】:2016-11-17 17:35:40
【问题描述】:
我想获得由某个起点和终点(以米为单位)确定的给定折线的“子折线”。
例如,我有一条 500 米的折线(使用 30 个坐标构建(不在相同的空间中分隔)),我想将 200 米和 300 米之间的线用不同的颜色着色。是否可以使用 Leaflet 功能?
【问题讨论】:
标签: javascript leaflet polyline
我想获得由某个起点和终点(以米为单位)确定的给定折线的“子折线”。
例如,我有一条 500 米的折线(使用 30 个坐标构建(不在相同的空间中分隔)),我想将 200 米和 300 米之间的线用不同的颜色着色。是否可以使用 Leaflet 功能?
【问题讨论】:
标签: javascript leaflet polyline
在这里查看 LineStringSelect 插件:https://github.com/w8r/L.Control.LineStringSelect
使用演示(单击折线上的 2 个不同位置):
【讨论】:
所以基本上你是在问“如果我有一条折线和一个距离值,那么沿着折线的点是什么,距离线的起点具有所需的长度 - 距离”?
这个算法已经被介绍过很多次了,例如:
算法总是一样的:将折线/线串分成段,测量每段的长度,定位点,在点所在的段中应用直接插值。
请记住,二维笛卡尔平面中的几何与大地水准面表面中的几何不同,尤其是在测量距离时。研究一下GeographicLib 及其处理测地线的方法。
对于您的问题 «Is it possible using Leaflet functions?», 答案是 «no, Leaflet does not implement this algorithm»。最简单的方法应该是阅读答案中提到的 Leaflet 插件的源代码,或者使用 Turf 库中的 along() 方法。
【讨论】: