gpt4 book ai didi

javascript - [画一个特征包围另一个特征]有什么函数或算法吗?

转载 作者:行者123 更新时间:2023-11-30 19:08:44 25 4
gpt4 key购买 nike

我必须使用 OpenLayers 来创建绘制两个要素的逻辑。
用户绘制特征A后,
我们需要逻辑来绘制围绕要素 A 的要素 B。

  1. 在 map 上绘制要素 A。
  2. 绘制要素 A 后,系统必须创建围绕要素 A 的要素 B。
  3. 最终结果应该和Image一样。

Result what I want

先决条件

  1. 特征可以有 3 - 6 个 Angular 。
  2. 每边的长度是不可预测的。
  3. 每边的 Angular 是不可预测的。
  4. 特征 B 的所有边必须由特征 A 的所有边组成,距离由用户指定。
    我们如何解决这个问题?

完整源代码:https://github.com/JeahaOh/OpenLayersStudy/tree/master/Examples/EffectiveRange/CDN

最佳答案

嘿,这看起来像是在创建一个缓冲区为 x 的几何体(x 由用户定义)。

您可以使用 JSTS从几何体创建缓冲区,然后将其映射回 openlayer 几何体。

OpenLayers example用缓冲区绘制几何图形。此示例使用 LineString 几何图形,但您可以使用任何几何图形。

查看您的示例,您可能希望外部几何形状有锐利的边缘,以便您可以使用斜线连接样式

var bufParams = new jsts.operation.buffer.BufferParameters();
bufParams.setJoinStyle(
jsts.operation.buffer.BufferParameters.JOIN_MITRE)
var outer = inner.buffer(spacing, bufParams);

参见 docs for BufferParameters更多选项。

这是一个jsfiddle这表明了这一点。

关于javascript - [画一个特征包围另一个特征]有什么函数或算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com