在 3D 中草绘

尝试一下在线预览

此示例演示如何使用 3D 符号创建图形,以及如何在 SceneView 中使用 SketchViewModel 更新这些图形。

sketch-widget

例如,具有 ExtrudeSymbol3DLayer 的符号用于绘制拉伸的建筑物覆盖区:

                      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const sketchViewModel = new SketchViewModel({
  layer: gLayer,
  view: view,
  polygonSymbol: {
    type: "polygon-3d",
    symbolLayers: [
      {
        type: "extrude",
        size: 10, // extrude by 10 meters
        material: {
          color: white
        },
        edges: {
          type: "solid",
          size: "3px",
          color: [82, 82, 122, 0.8]
        }
      }
    ]
  },
  defaultCreateOptions: { hasZ: false }
});

要激活草图模式,您可以在 SketchViewModel 上调用 create() 方法,并输入应创建的几何类型:

   
1
2
3
button.addEventListener("click", (event) => {
  sketchViewModel.create("polygon");
});

重塑选项

使用 reshapeOptions,可以修改边的行为,并在面和折线的重塑工具中移动操作。在此示例中,切换重塑选项的逻辑是通过每当调用 update() 操作时出现的 UI 组件来处理的。以下代码段演示如何手动配置 reshapeOptions

      
1
2
3
4
5
6
defaultUpdateOptions: {
  reshapeOptions: {
      edgeOperation: "split",
      shapeOperation: "move"
  }
}

sketch-widget

捕捉

也可以在 sketch 微件中配置捕捉。这是通过 snappingOptions 属性处理的。草绘微件提供了一个要切换 snappingOptions.enableUI。此示例包含复选框输入元素,用于打开/关闭捕捉功能,并指定捕捉是否应仅限于自身捕捉或要素捕捉。

选中“已启用捕捉”复选框等效于将 snappingOptions.enabled 设置为 true。您还可以使用 CTRL 键动态切换对齐开/关。

  
1
2
...
editor.snappingOptions.featureSources = snapSource;

sketch-widget-snapping

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.