You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Shapely LineString中截取指定区间的线段片段?

Shapely截取LineString线段的实现方法

Shapely完全支持这类线段截取操作,基于你已有的插值距离或点位置,有两种直接的实现方式:

  • 已知点位置时的截取
    先通过line_locate_point()方法获取每个青色点沿原LineString的起点距离(记为dist1和dist2,确保dist1 < dist2),再用slice()方法截取:

    from shapely.geometry import LineString
    
    # 示例原始线段
    original_line = LineString([(0,0), (2,2), (5,3)])
    # 假设p1、p2是你已知的两个青色点
    dist1 = original_line.line_locate_point(p1)
    dist2 = original_line.line_locate_point(p2)
    
    # 获取两点间的子线段
    clipped_line = original_line.slice(dist1, dist2)
    
  • 直接用已知插值距离截取
    如果你已经知道两个点对应的沿线段距离(比如dist_start和dist_end),可以直接调用slice():

    clipped_line = original_line.slice(dist_start, dist_end)
    

    注意要保证dist_start ≤ dist_end,且两个距离都在0到原线段总长度(original_line.length)的范围内。

  • 验证截取结果
    可以通过clipped_line.length检查长度是否等于dist_end - dist_start,或者对比端点坐标确认是否匹配目标点。

内容的提问来源于stack exchange,提问作者horsemeat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 01:14:51