arcgis api for javascript在编辑了现有图形后怎么保存
在ArcGIS API for JavaScript中,编辑现有图形并保存涉及以下步骤:
1. 开始编辑现有图形
首先,确保你已经通过API加载了地图和图层,并启用了编辑功能。以下是基本的加载地图和图层的示例:
javascriptrequire([
"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
方法将更改应用到服务端。
javascriptfeatureLayer.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中实现编辑现有图形并保存的功能。