arcgis api for javascript在编辑了现有图形后怎么保存

在ArcGIS API for JavaScript中,编辑现有图形并保存涉及以下步骤:

1. 开始编辑现有图形

首先,确保你已经通过API加载了地图和图层,并启用了编辑功能。以下是基本的加载地图和图层的示例:

javascript
require([ "esri/Map", "esri/views/MapView", "esri/layers/FeatureLayer", "esri/widgets/Sketch/SketchViewModel" ], function(Map, MapView, FeatureLayer, SketchViewModel) { var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", map: map, center: [-118, 34], zoom: 12 }); var featureLayer = new FeatureLayer({ url: "URL_TO_YOUR_FEATURE_LAYER", outFields: ["*"] }); map.add(featureLayer); view.whenLayerView(featureLayer).then(function(layerView) { var sketchViewModel = new SketchViewModel({ layer: featureLayer, view: view, updateOnGraphicClick: false // 设置为true以在单击图形时立即启动更新 }); view.ui.add("editDiv", "top-right"); sketchViewModel.on("create", function(event) { if (event.state === "complete") { // 编辑完成时执行的操作 } }); sketchViewModel.on("update", function(event) { if (event.state === "complete") { // 更新完成时执行的操作 } }); sketchViewModel.on("delete", function(event) { if (event.state === "complete") { // 删除完成时执行的操作 } }); sketchViewModel.on("reset", function(event) { // 重置时执行的操作 }); sketchViewModel.on("tool-change", function(event) { // 工具更改时执行的操作 }); sketchViewModel.on("redo", function(event) { // 重做操作时执行的操作 }); sketchViewModel.on("undo", function(event) { // 撤消操作时执行的操作 }); // 启动编辑功能 sketchViewModel.create("point"); // 或者使用 sketchViewModel.update(graphic) 编辑现有图形 }); });

2. 保存编辑后的图形

一旦进行了编辑操作,你需要实现保存这些更改的逻辑。ArcGIS API for JavaScript没有直接的保存方法,因为保存通常需要与后端服务(如ArcGIS Server或ArcGIS Online)进行交互。

通常的做法是:

  • 提交编辑:在完成编辑后,将更改提交到服务端。可以通过调用FeatureLayer的applyEdits方法将更改应用到服务端。
javascript
featureLayer.applyEdits({ updateFeatures: [editedGraphic], deleteFeatures: [deletedGraphic], addFeatures: [newGraphic] }).then(function(editsResult) { // 检查编辑结果 console.log("Edits applied successfully:", editsResult); }).catch(function(error) { // 处理错误 console.error("Error applying edits:", error); });

在上述示例中,editedGraphic是编辑后的图形对象,可以是单个或多个图形的集合。applyEdits方法返回一个Promise,允许你处理成功或失败的情况。

注意事项:

  • 权限和认证:确保你有权限进行编辑操作,包括添加、更新和删除图形。
  • 错误处理:处理可能出现的编辑错误,如网络问题或服务端返回的错误信息。
  • 版本控制:有时需要在编辑时考虑版本控制,避免同时编辑导致的冲突问题。

通过以上步骤,你可以在ArcGIS API for JavaScript中实现编辑现有图形并保存的功能。