JSTS平方螺旋

时间:2019-03-05 12:19:35

标签: javascript jts

我有一个通用的线串几何图形,需要绘制螺旋线。线串本身可能会在某些点交叉,但是我只需要围绕外部螺旋形,而不是在基线本身绘制的孔中

我认为我可以通过使用jsts.operation.buffer.BufferOp.bufferOp JSTS 2.0.3 )来进行尝试,如下所示:

  • 计算距原始线串的距离 dist 的缓冲区(角不需要倒圆,相反,越锐利越好)。
  • 从计算出的缓冲区几何中获取外环的坐标序列。
  • 将迄今计算出的螺旋线(从原始线串开始)缝合到计算出的外环上,同时避免两次插入起点/终点(实际上,连接环的最后一段不利于我画图的目的)螺旋形)。
  • 冲洗并重复。

撇开“缝合”部分,我对线性环中的坐标序列有疑问。我希望线性环的起始点(或结束点)在基本线串末端之一处有点“接近”,但是结果序列(导出为WKT并通过Postgis绘制)显示了一个在我的原始线串的右侧有些不正确的段(实际上,通过导航源,我确实注意到在计算缓冲区几何形状时调用了某个subgraph.getRightmostCoordinate(),我认为这可能是相关的) 。这意味着我可能不依赖JSTS getExteriorRing()方法在其缓冲区多边形上产生的序列,但是我需要导航和操作它。

具体来说,我需要:

  1. 删除序列中重复的起点/终点(因此我不会重复处理一个点)。
  2. 在缓冲区外环序列中获取最接近我要将该序列缝合到的点。
  3. 了解缓冲区外环序列的方向,可能会使它反转,从而使螺旋线按预期方向继续进行。

数字1没什么。

2号,我以为我会得到序列中距缝合点的距离最接近预期半径(即尖顶之间的预期距离)的点,尽管这提示了可能在多个点之间进行选择的问题,这与第三个问题有关。

数字3听起来在计算上是昂贵且模棱两可的,因为我不确定甚至没有明确的方法可以在某些几何形状上定义“顺时针”(例如,围绕蜗牛壳形线串构建的缓冲区)。

我不需要将螺旋上的曲线弄圆(实际上,越锐利越好),与使用缓冲功能相比,解决此问题的方法可能更好。我倾向于使用它,因为我喜欢随着缓冲区半径的增加它如何处理不规则几何形状,如果缓冲区在另一部分与基本多边形相交,则会“吸收”较大多边形中的几何形状。

0 个答案:

没有答案