python 切割块_python – Shapely:在两个切割点处从线串切下一块

众所周知的功能

from shapely.geometry import *

from shapely.wkt import loads

def cut(line, distance):

# Cuts a line in two at a distance from its starting point

if distance <= 0.0 or distance >= line.length:

return [LineString(line)]

coords = list(line.coords)

for i, p in enumerate(coords):

pd = line.project(Point(p))

if pd == distance:

return [

LineString(coords[:i+1]),

LineString(coords[i:])]

if pd > distance:

cp = line.interpolate(distance)

return [

LineString(coords[:i] + [(cp.x, cp.y)]),

LineString([(cp.x, cp.y)] + coords[i:])]

将形状上的线串分成两行距离.

我需要做的是在线上的某个位置从线上切下一段长度

示例行:

line = loads("LINESTRING (12.0133696 47.8217147, 12.0132944 47.8216655, 12.0132056 47.8215749, 12.0131542 47.8215034, 12.0130522 47.8212931, 12.0129941 47.8211294, 12.0130381 47.8209553, 12.0131116 47.8208718, 12.013184 47.8208107, 12.0133547 47.8207312, 12.0135537 47.8206727, 12.013915 47.8206019, 12.0141624 47.8205671, 12.0144317 47.8204965)")

我尝试了一种方法来获得一些线条之间的差异,这是通过应用上面的切割功能得到的,但由于形状限制,结果并不好.

有任何想法吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值