• geoscene/views

SnappingOptions

AMD: require(["geoscene/views/interactive/snapping/SnappingOptions"], (SnappingOptions) => { /* code goes here */ });
ESM: import SnappingOptions from "@geoscene/core/views/interactive/snapping/SnappingOptions";
类: geoscene/views/interactive/snapping/SnappingOptions
继承于:SnappingOptions Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.19

SnappingOptions 允许用户为他们在 SketchEditor 微件中的编辑或绘制体验配置捕捉。

捕捉选项提供了指定应用程序是利用自捕捉、要素捕捉还是两者的功能。下面将介绍这两种功能。

也可通过按住 CTRL 键来切换捕捉。这将打开/关闭捕捉。

自捕捉 (几何参考线)

自捕捉是通过 selfEnabled 属性设置的。这意味着当用户主动创建或更新要素或图形时,他们将看到有助于识别垂直线和平行线的可视化,以及有助于捕捉到现有要素扩展的可视化。下面简要演示了 2D 应用程序中的自捕捉外观。虽然这是针对 2D 显示的,但同样的前提也适用于 3D。

self-snapping

要素捕捉

要素捕捉是通过 featureEnabled 属性设置的。它提供了将当前正在绘制或修整的图形或要素的折点捕捉到现有要素的折点、边或端点的能力。这些现有要素属于 Map 中的图层,且必须在 featureSources 属性中指定。以下两张图片演示了 2D 应用程序中的要素捕捉。与自捕捉类似,同样的前提也适用于 3D。

feature-snapping-create

上图显示了在创建新要素时,要素捕捉到现有要素的顶点和边。下图演示了使用现有要素并修整其几何形状以捕捉到另一个要素的顶点。

feature-snapping-update

要考虑的点:

名称 详情 3D 示例 2D 示例
Rectangle 捕捉相互垂直的线 Rectangle Rectangle-2d
Parallel 捕捉到所有平行线 Parallel Parallel-2d
Extension 捕捉到当前形状的延伸 Extension Extension-2
Vertex (如在更新几何时所见) 将折点捕捉到现有折点 折点 Vertex-2
另请参阅
示例
// Create a new instance of Sketch, and set
// a layer for one of the featureSources property.
// This enables feature snapping on that layer.
const sketch = new Sketch({
  layer: graphicsLayer,
  view: view,
  snappingOptions: { // autocasts to SnappingOptions()
    enabled: true, // global snapping is turned on
    // assigns a collection of FeatureSnappingLayerSource() and enables feature snapping on this layer
    featureSources: [{ layer: graphicsLayer, enabled: true }]
  }
});

构造函数

new SnappingOptions(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
String

类的名称。

更多详情
Accessor
Number

捕捉距离,以像素为单位。

更多详情
SnappingOptions
Boolean

用于打开或关闭捕捉的全局配置。

更多详情
SnappingOptions
Boolean

用于打开或关闭要素捕捉的全局配置选项。

更多详情
SnappingOptions
Collection<FeatureSnappingLayerSource>

要素捕捉的源列表。

更多详情
SnappingOptions
Boolean

全局配置选项,用于打开或关闭自捕捉 (在绘制或修整时在一个要素内)。

更多详情
SnappingOptions

属性详细信息

declaredClass Stringreadonly inherited

类的名称。声明的类名称格式化为 geoscene.folder.className

distance Number

捕捉距离,以像素为单位。

默认值:5
enabled Boolean

用于打开或关闭捕捉的全局配置。请注意,默认情况下会关闭捕捉。

默认值:false
featureEnabled Boolean

用于打开或关闭要素捕捉的全局配置选项。

默认值:true

要素捕捉的源列表。请参阅 FeatureSnappingLayerSource 以了解有关支持哪些图层源的更多信息。

selfEnabled Boolean

全局配置选项,用于打开或关闭自捕捉 (在绘制或修整时在一个要素内)。

默认值:true

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述

添加一个或多个与对象的生命周期相关联的句柄。

更多详情
Accessor
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor

移除对象拥有的句柄组。

更多详情
Accessor

方法详细说明

addHandles(handleOrHandles, groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
参数
handleOrHandles WatchHandle|WatchHandle[]

对象销毁后,标记为要移除的句柄。

groupKey *
optional

标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。

hasHandles(groupKey){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

如果存在指定的句柄组,则返回 true。

参数
groupKey *
optional

组键。

返回
类型 描述
Boolean 如果存在指定的句柄组,则返回 true
示例
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
removeHandles(groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

移除对象拥有的句柄组。

参数
groupKey *
optional

要移除的组键或组键的数组或集合。

示例
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息