• 实例geojsonLayer时添加属性popupTemplate
popupTemplate: {
          title: action,
          content: '点击了'
        }
  • 设置title用于查询到多个graphic时能够区分
title: function(event) {
            return popupTile[action] + event.graphic.getAttribute('OBJECTID')
          }
  • 设置actions属性来创建删除按钮
actions:[
    {
        title: '删除',
        id: 'deleteGraphic',
        className: 'esri-icon-trash'
    }
]
  • 在map上监听popup上的操作,然后调用对应的方法
this.mapView.popup.on("trigger-action", event => {
        const { id } = event.action
        if(id === 'delete-graphic')
          this.deleteGraphic()
      })
  • 删除指定位置的graphic的方法
 deleteGraphic() {
      const selectedFeature = this.mapView.popup.selectedFeature
      const { layer } = selectedFeature
      layer.applyEdits({
        deleteFeatures: [selectedFeature]
      }).then(res => {
        console.log(res)
      })
    },

完整代码

// 创建弹窗模板
      const popupTemplate = {
        title: function(event) {
          return popupTile[action] + '-------' + event.graphic.getAttribute('OBJECTID')
        },
        actions:[
          {
            title: '删除',
            id: 'delete-graphic',
            className: 'esri-icon-trash'
          }
        ]
      }
// 把模板设置到geojsonLayer上
     const GeojsonLayer = new esri.GeoJSONLayer({
        url: url,
        copyright: 'RHgis',
        id: layerID,
        renderer: customRenderer || renderer,
        popupTemplate
      })
// 监听popup上的按钮事件
      this.mapView.popup.on("trigger-action", event => {
        console.log(event)
        const { id } = event.action
        if(id === 'delete-graphic')
          this.deleteGraphic()
      })
//     删除
    deleteGraphic() {
      const selectedFeature = this.mapView.popup.selectedFeature
      const { layer } = selectedFeature
      layer.applyEdits({
        deleteFeatures: [selectedFeature]
      }).then(res => {
        console.log(res)
      })
    },