当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS Sketch.update用法及代码示例


基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/widgets/Sketch"], (Sketch) => { /* code goes here */ });

ESM: import Sketch from "@arcgis/core/widgets/Sketch";

类: esri/widgets/Sketch

继承: Sketch > Widget > Accessor

自从:用于 JavaScript 4.10 的 ArcGIS API

用法说明

Sketch.update函数(或属性)的定义如下:

update (graphics, updateOptions) {Promise<void>}


初始化指定图形的更新操作并触发更新事件。

参数:

规格:
类型说明
graphics Graphic|Graphic[]

要更新的图形或图形数组。只有添加到 SketchViewModel 的图层属性中的图形才能更新。

updateOptions Object
可选的

要更新的图形的更新选项。

规格:
tool

String

可选的

更新工具的名称。指定所选图形的更新操作。提供的工具将成为活动工具。

可能的值

说明
transform 这是默认图形工具多边形几何学,折线几何或图形使用ObjectSymbol3DLayer观点几何学。默认情况下,它允许对一个或多个图形进行缩放、旋转和移动。它的默认行为可以通过设置enableRotation,enableScaling或者preserveAspectRatio调用时的参数update方法或将它们设置在默认更新选项Sketch 小部件初始化时的属性。
reshape 此工具允许移动整个图形或图形的各个顶点。可以添加或删除顶点。此工具只能用于具有 polygonpolyline 几何图形的单个图形。
move 这是默认图形工具观点不使用 a 的几何ObjectSymbol3DLayer.它应该用于您只想移动选定的特定情况polygonpolyline没有附加选项的图形。此外,move工具不支持切换到不同的模式,因为move操作内置于两个transformreshape默认为工具。

可能的值"transform"|"reshape"|"move"

enableRotation

Boolean

可选的
默认值:真的

指示更新图形时是否启用rotation 操作。仅在 tooltransform 时适用。

enableScaling

Boolean

可选的
默认值:真的

指示更新图形时是否启用scale 操作。仅在 tooltransform 时适用。

enableZ

Boolean

可选的
默认值:真的

指示更新图形时是否可以修改z-values。启用后,将显示高度手柄操纵器。

multipleSelectionEnabled

Boolean

可选的
默认值:真的

指示是否可以一次进行多个选择。这适用于与 transform 工具的 shift+click 交互。

preserveAspectRatio

Boolean

可选的
默认值:错误的

指示更新图形时是否启用统一缩放操作。将此属性设置为 true 时,必须设置 enableScaling true。仅当 tooltransform 并且在转换使用 3D object symbol layer 的点时始终为 true 时才适用。

toggleToolOnClick

Boolean

可选的
默认值:真的

指示正在更新的图形是否可以在 transformreshape 更新选项之间切换。

返回:

类型 说明
Promise<void> 当请求的更新工具已加载并可以使用时解决。

例子:

// start update operation for the selected graphic
// with transform tool. Only allow uniform scaling operation.
sketch.update([selectedGraphic], {
  tool: "transform",
  enableRotation: false,
  enableScaling: true,
  preserveAspectRatio: true,
  toggleToolOnClick: false
});
// Listen to sketch's update event to validate graphic's
// location while it is being reshaped or moved
sketch.on("update", onGraphicUpdate);
function onGraphicUpdate(event) {
  // get the graphic as it is being updated
  const graphic = event.graphics[0];
  // check if the graphic is intersecting school buffers
  intersects = geometryEngine.intersects(buffers, graphic.geometry);

  // change the graphic symbol to valid or invalid symbol
  // depending the graphic location
  graphic.symbol = (intersects) ? invalidSymbol : validSymbol

  // check if the update event's the toolEventInfo.type is move-stop or reshape-stop
  // user finished moving or reshaping the graphic, call complete method.
  // This changes update event state to complete.
  const toolType = event.toolEventInfo.type;
  if (event.toolEventInfo && (toolType === "move-stop" || toolType === "reshape-stop")) {
    if (!intersects) {
      sketch.complete();
    }
  } else if (event.state === "complete") {
      // graphic update has been completed
      // if the graphic is in a bad spot, call sketch's update method again
      // giving user a chance to correct the location of the graphic
      if ((!contains) || (intersects)) {
        sketch.update({
          tool: "reshape",
          graphics: [graphic],
          toggleToolOnClick: false
        });
      }
  }
}

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 Sketch.update。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。