给定一个线串和一个等长的距离列表(标量),我如何得到一个新的距离,它在原始距离的左边(或右边),并在列表中的相应位置指定偏移量?本质上是shapely.offset_curve()会做的,但偏移量不固定。
的数据
kuarbcqp1#
一种方法是单独缓冲顶点/点,计算每个连接的缓冲顶点/点对的凸船体,然后计算这些凸船体的溶解并集。
import shapely line = shapely.LineString([(0,0), (5, 6), (8, -4), (16, 9)]) buffer_sizes = [1, 2, 3, 4] points = [shapely.Point(coords) for coords in line.coords] buffered_points = [ point.buffer(s) for s, point in zip(buffered_points, points) ] convex_hulls = [] for i in range(len(buffered_points)-1): convex_hulls.append( shapely.convex_hull( shapely.union( buffered_points[i], buffered_points[i+1] ) ) ) buffered_line = shapely.union_all(convex_hulls)
字符串可能有一个更优雅和有效的方法,但它似乎可以解决你的问题。
1条答案
按热度按时间kuarbcqp1#
一种方法是单独缓冲顶点/点,计算每个连接的缓冲顶点/点对的凸船体,然后计算这些凸船体的溶解并集。
字符串
可能有一个更优雅和有效的方法,但它似乎可以解决你的问题。