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


JavaScript ArcGIS SubtypeGroupLayer.applyEdits用法及代码示例


基本信息

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

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

ESM: import SubtypeGroupLayer from "@arcgis/core/layers/SubtypeGroupLayer";

类: esri/layers/SubtypeGroupLayer

继承: SubtypeGroupLayer > Layer > Accessor

自从:用于 JavaScript 4.20 的 ArcGIS API

用法说明

SubtypeGroupLayer.applyEdits函数(或属性)的定义如下:

applyEdits (edits, options) {Promise<Object>}


将编辑应用于图层中的要素。可以创建新函数,也可以更新或删除现有函数。特征几何形状和/或属性可以被修改。仅适用于 feature service 中的图层以及通过图层源设置的客户端函数。

如果使用 applyEdits() 在运行时添加、删除或更新客户端函数,则使用 queryFeatures() 返回更新的函数。

在没有vertical coordinate system 信息的服务上调用applyEdits 方法时,edits 对象中几何的z-values 将自动转换为匹配图层的空间参考。示例:服务有一个使用feet 单位的水平空间参考,并且基于meter 单位使用z-values 调用applyEdits(),然后该方法将自动将z 值从meter 转换为feet 单位.

从版本 4.17 开始,使用 applyEdits 将带有 z-values 的几何图形添加到带有 hasZ: false 的 SubtypeGroupLayer 不再静默删除 z-value 并且现在会引发错误。

参数:

规格:
类型说明
edits Object

包含要添加、更新或删除的函数和附件的对象。

规格:
可选的

要添加的特征数组或collection。添加新函数时必须提供不可为空字段的值。日期字段必须具有表示通用时间的 numeric 值。

updateFeatures

Graphic[]|Collection<Graphic>

可选的

要更新的函数的数组或collection。每个函数都必须具有有效的 objectId。更新函数时必须提供不可为空字段的值。日期字段必须具有代表通用时间的 numeric 值。

可选的

要素的数组或collection,或者每个要删除的要素的带有objectIdglobalId 的对象数组。当传递一个数组或一组要素时,每个要素必须有一个有效的 objectId。使用对象数组时,每个对象必须为 objectIdglobalId 属性设置有效值。

addAttachments

AttachmentEdit[]

可选的

要添加的附件数组。仅当 options.globalIdUsed 参数设置为 true 时适用。用户必须提供全局 ID 才能添加所有附件。

updateAttachments

AttachmentEdit[]

可选的

要更新的附件数组。仅当 options.globalIdUsed 参数设置为 true 时适用。用户必须提供全局 ID 才能更新所有附件。

deleteAttachments

String[]

可选的

用于删除附件的全局 ID 数组。仅当 options.globalIdUsed 参数设置为 true 时适用。

options Object
可选的

编辑要素或附件时要指定的其他编辑选项。

规格:
gdbVersion

String

可选的

应用编辑的地理数据库版本。仅当图层的 capabilities.data.isVersioned 属性为 true 时,此参数才适用。如果未指定 gdbVersion 参数,则会对已发布Map的版本进行编辑。

rollbackOnFailureEnabled

Boolean

可选的

指示是否仅当所有提交的编辑都成功时才应应用编辑。如果是 false ,即使某些提交的编辑失败,服务器也会应用成功的编辑。如果是 true ,则仅当所有编辑成功时服务器才会应用编辑。如果使用此参数,图层的capabilities.editing.supportsRollbackOnFailure属性必须为true。如果某个层的 supportsRollbackOnFailurefalse,则 rollbackOnFailureEnabled 将始终为 true,无论参数如何设置。

globalIdUsed

Boolean

可选的

指示是否可以使用要素或附件的 globalIds 应用编辑。仅当图层的 capabilities.editing.supportsGlobalId 属性为 true 时,此参数才适用。当 false 时,随函数一起提交的 globalId 将被忽略,并且服务会为新函数分配新的 globalId。当 true 时,globalIds 必须与新函数一起提交。更新现有函数时,如果 globalIdUsedfalse ,则必须提供待更新函数的 objectId。如果 globalIdUsedtrue ,则必须提供要更新的函数的 globalId。删除现有函数时,请将此属性设置为 false,因为删除操作在当前版本的 API 中仅接受 objectIds

添加、更新或删除附件时,必须将globalIdUsed参数设置为true,并设置附件globalId。对于新附件,用户必须提供 globalIds。为了更新或删除附件,客户端必须包含其 globalId。

globalIdUsedfalse 时,编辑有效负载中不支持附件。

返回:

类型 说明
Promise<Object> 解析为包含编辑结果的对象。有关详细信息,请参阅下面的对象规格表。
属性 类型 说明
addFeatureResults 特征编辑结果[] 添加特征的结果。
deleteFeatureResults 特征编辑结果[] 删除特征的结果。
updateFeatureResults 特征编辑结果[] 更新函数的结果。
addedAttachments 特征编辑结果[] 添加附件的结果。
deletedAttachments 特征编辑结果[] 删除附件的结果。
updatedAttachments 特征编辑结果[] 更新附件的结果。

例子:

function addFeature(geometry) {
  const attributes = {};
  attributes["Description"] = "This is the description";
  attributes["Address"] = "380 New York St";

  // Date.now() returns number of milliseconds elapsed
  // since 1 January 1970 00:00:00 UTC.
  attributes["Report_Date"] = Date.now();

  const addFeature =  new Graphic({
    geometry: geometry,
    attributes: attributes
  });

  const deleteFeatures = [
    { objectId: 467 },
    { objectId: 500 }
  ];

  // or specify globalIds of features to be deleted
  // const deleteFeature = [
  //  { globalId: "18633204-1801-4d35-a73a-174563608ad9" }
  // ];

  const promise = featureLayer.applyEdits({
    addFeatures: [addFeature],
    deleteFeatures: deleteFeatures
  });
}
function addAttachment(selectedFeature) {
  const blob = new Blob(byteArrays, { type: "image/png" });
  addAttachments.push({
    feature: selectedFeature,
    attachment: {
      globalId: "8c4d6085-a33c-42a0-8e11-21e9528bca0d",
      name: "brokenLight",
      data: blob
    }
  });

  const edits = {
    addAttachments: addAttachments
  };

  const options = {
    // globalIdUsed has to be true when adding, updating or deleting attachments
    globalIdUsed: true,
    rollbackOnFailureEnabled: true
  };

  featureLayer.applyEdits(edits, options).then(function(results) {
    console.log("edits added: ", results);
  });
}

相关用法


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