arcgis api for js4.x 图层要素的增删改

0、获取要编辑的图层,并加载到的视图上

self.editLayerServer = new FeatureLayer({
              url: self.editLayerUrl,
              title: '待编辑图层',
              id: 'polygonMapServer',
              layerCNName: '待编辑图层',
            })
            self.mapView.map.add(self.editLayerServer);

1、删除

//删除要素---根据objectId进行删除(editLayerServer为要编辑的矢量图层)
_deleteSelFeature() {
      const self = this
      self.$confirm('此操作将永久删除, 是否继续?', '提示', {
        cancelButtonClass: 'btn-custom-cancel',
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        if (self.featureSel) {//featureSel选中要删除的数据
          let attributes = self.featureSel.attributes
          const deleteFeatures = [{ objectId: attributes.OBJECTID },];
          self.editLayerServer.applyEdits({ deleteFeatures: deleteFeatures })
            .then(res => {
              if (res.deleteFeatureResults.length >= 0) {
                self.$message({ type: 'success', message: '删除成功!' });
              }
            })
        }
      }).catch(() => {
        self.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
    },

2、添加/编辑要素

//添加+编辑
_layerOperation(type) {
      const self = this
      let geometry = self.newGeometry//新绘制的图形
      switch (type) {
          case "添加":
            //设置添加要素的图形+属性(有的属性值不允许为空,接口返回中有相关的错误提示code:1016)
            const addFeature = new self.Graphic({
              geometry: geometry,
              attributes: self.attributesForm
            });
            self.edits = { addFeatures: [addFeature] }
            break;
          case "编辑":
            //updateFeatures的格式为updateFeatures=[{geometry:geometry,attributes:attributes}]
            if (self.edits != null) {
              if (geometry != null) {
                self.edits.updateFeatures[0].geometry = geometry
              }
              //循环保证objectid+shape字段不变
              for (let key in self.attributesForm) {
                self.edits.updateFeatures[0].attributes[key] = self.attributesList[key]
              }
            }
            break;
       }

      self.updataApplyEdits(self.edits)
      
    },
    //图层修改
    updataApplyEdits(params) {
      let self = this
      self.editLayerServer.applyEdits(params)
        .then((editsResult) => {
          //图层添加
          if (editsResult.updateFeatureResults.length > 0) {
            self.editLayerServer.refresh()
          }
          //图层编辑
          if (editsResult.addFeatureResults.length > 0) {
            self.editLayerServer.refresh()
          }
        }).then((v) => {
          self.$message({message: "入库成功!",type: "success",duration: 1500})
        })
    },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值