首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shapely中MultiLineString对象中LineStrings的顺序

Shapely中MultiLineString对象中LineStrings的顺序
EN

Stack Overflow用户
提问于 2015-10-17 00:11:54
回答 1查看 3.6K关注 0票数 3

我有一个MultiLineString对象,其中组成它的LineStrings的顺序不正确(或者至少我希望它们的顺序是正确的)。

例如,假设我有以下两个LineStrings:

代码语言:javascript
复制
from shapely.geometry import *
LineIWant = MultiLineString([((0,0),(2,5)),((2,5),(7,10)),((7,10),(6,15))])
LineIHave = MultiLineString([((0,0),(2,5)),((7,10),(6,15)),((2,5),(7,10))])

正如你所看到的,坐标是这样的,所有的线段都连接/匹配,但在我的对象中,它们并不是按顺序排列的。当我尝试使用插值方法来获得沿对象75%的点时,这是有问题的:

代码语言:javascript
复制
LineIHave.interpolate(.75, normalized=True)

关于如何在MultiLineString对象中重新排序LineStrings,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-20 06:49:42

尝试将MultiLineString转换为单个LineString:

代码语言:javascript
复制
from shapely.ops import linemerge
linemerge(LineIHave)  # LINESTRING (0 0, 2 5, 7 10, 6 15)
linemerge(LineIWant)  # LINESTRING (0 0, 2 5, 7 10, 6 15)

如果直线出现方向错误,你可以反转它:

代码语言:javascript
复制
LineString(linemerge(LineIWant).coords[::-1])  # LINESTRING (6 15, 7 10, 2 5, 0 0)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33175022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档