小叶得到具有特定起点和终点的子折线

Leaflet get sub-polyline with specific start and end point

本文关键字:终点 折线 起点 叶得      更新时间:2023-09-26

我想获得给定折线的"子折线",该折线由某个起点和终点(以米为单位)确定。

例如,我有一条500米的折线(使用30个坐标(不在相同的空间中分开)构建),我想用不同的颜色将米200和300之间的线着色。是否可以使用传单函数?

看看这里的LineStringSelect插件:https://github.com/w8r/L.Control.LineStringSelect

使用演示(点击折线上的2个不同位置):

https://w8r.github.io/L.Control.LineStringSelect

所以基本上你是在问"如果我有一条折线和一个距离值,沿着折线的点与所需的长度距离到线的起点是什么?"

这个算法已经讨论过很多次了,例如:

  • http://www.postgis.org/docs/ST_Line_Interpolate_Point.html, http://www.postgis.org/docs/ST_Line_Substring.html
  • 在<<li> http://turfjs.org/docs//gh>
  • https://github.com/IvanSanchez/Leaflet.Polyline.SnakeAnim

算法始终是相同的:将折线/线串划分为段,测量每个段的长度,定位点,在点所在的段中应用直接插值。

请记住,二维直角平面上的几何形状与大地水准面表面的几何形状不同,特别是在测量距离时。对geoiclib及其操作测地线的方法做一些研究。

对于您的问题«是否可能使用传单函数?»,答案是«no,传单没有实现这个算法»。对于您来说,最简单的方法应该是阅读答案中提到的传单插件的源代码,或者使用Turf库中的along()方法。