首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找LineString在turfjs中与多边形边框相交的坐标。

查找LineString在turfjs中与多边形边框相交的坐标。
EN

Stack Overflow用户
提问于 2015-11-10 11:53:05
回答 2查看 2.7K关注 0票数 3

在Turfjs中是否有一种确定LineString与多边形边界相交的坐标的方法?

有很多方法可以找出一个点是否在多边形内,也有很多方法可以找出一个点是否在一条线上,等等,但我似乎想不出一种方法来问,“这条线在哪一点与这个多边形的边界”相交。

我可以使用直线相交算法来枚举多边形中的点,但是我想知道是否有更多的“草皮”方法来做到这一点。

对于上下文,我已经加载了一个GPX轨道,并希望估计该轨道进入/退出定义区域的位置/时间。

由于GPX跟踪只记录特定时间间隔的位置,通常情况下,pN记录在时间范围之外,tN记录在时间范围之外,pN+1记录在时间范围内,tN+1记录在区域内。如果我能得到直线(pN,pN+1)与多边形边界相交的点,我就可以估计出轨迹进入多边形的确切时间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-17 16:14:02

最终,turfjs似乎没有这样做的API。

我可以通过枚举GeoJSON对象中的多边形中的点来构造一个线段序列,从而得到我想要的答案,然后我使用maxogden/geojson-js-utils linesIntersect函数来测试交点。

票数 2
EN

Stack Overflow用户

发布于 2015-11-11 10:47:19

我没有看到一个Turf函数能做到这一点,但是有相交,它找到两个多边形之间的交集区域。

你可以:

  1. 通过将这条线与其反向连接来构造一个多边形(因此ABC变成ABCBA)
  2. 找到交叉点的ABCBA和P,原始多边形使用相交。
  3. 交点应该是一个零面积多边形,它是ABCBA在P内的一部分。以某种方式计算它的长度(奇怪的是没有周长函数)。
  4. 从美国广播公司的原始长度中减去这个长度。

不太优雅,真的。:)

编辑

试过这个。结果表明,如果其中一个多边形为零区域,则Turf-相交不返回交叉口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33629369

复制
相关文章

相似问题

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