尝试一下在线预览此示例演示如何使用 3D 符号创建图形,以及如何在 SceneView 中使用 SketchViewModel 更新这些图形。
![sketch-widget](/javascript/4.23/18a167401cd81af265415d66712f89c7/sketch-3d.gif)
例如,具有 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](/javascript/4.23/7507bde36c4802b2c75278b1aa6523d6/sketch-3d-offset.gif)
捕捉
也可以在 sketch
微件中配置捕捉。这是通过 snappingOptions 属性处理的。草绘微件提供了一个要切换 snappingOptions.enable
的 UI
。此示例包含复选框输入元素,用于打开/关闭捕捉功能,并指定捕捉是否应仅限于自身捕捉或要素捕捉。
选中“已启用捕捉”复选框等效于将 snappingOptions.enabled 设置为 true。您还可以使用 CTRL
键动态切换对齐开/关。
1
2
...
editor.snappingOptions.featureSources = snapSource;
![sketch-widget-snapping](/javascript/4.23/b33b95b710370745c3e9be2cb0a4f7aa/sketch-3d-snapping.gif)