【问题标题】:Leaflet get sub-polyline with specific start and end point传单获取具有特定起点和终点的子折线
【发布时间】:2016-11-17 17:35:40
【问题描述】:

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

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

【问题讨论】:

    标签: javascript leaflet polyline


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您的回复!这看起来确实不错,但似乎仅限于用户操作和选择.. 你知道如何在没有用户输入的情况下使用“固定”值的选择吗?
    • @David 抱歉回复晚了。不是直接的,但代码将在那里将 2 个点转换为沿给定折线的一系列点。
    【解决方案2】:

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

    这个算法已经被介绍过很多次了,例如:

    算法总是一样的:将折线/线串分成段,测量每段的长度,定位点,在点所在的段中应用直接插值。

    请记住,二维笛卡尔平面中的几何与大地水准面表面中的几何不同,尤其是在测量距离时。研究一下GeographicLib 及其处理测地线的方法。

    对于您的问题 «Is it possible using Leaflet functions?», 答案是 «no, Leaflet does not implement this algorithm»。最简单的方法应该是阅读答案中提到的 Leaflet 插件的源代码,或者使用 Turf 库中的 along() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多