Mon code est le suivant:
esriConfig.defaults.geometryService = new esri.tasks.GeometryService ("https://utility.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");
map.on ("layers-add-result", initEditing);
var SIDO = new FeatureLayer("http://dev.smui.co.kr:26080/arcgis/rest/services/kios/FEATURE_LP_AA/FeatureServer/0", {`enter code here`
mode: FeatureLayer.MODE_SNAPSHOT,
outFields: ["*"]
});
map.addLayers(SIDO);
function initEditing(evt) {
console.log("initEditing", evt);
// var map = this;
var currentLayer = null;
var layers = arrayUtils.map(evt.layers, function(result) {
return result.layer;
console.log("result ==== "+result);
});
console.log("layers", layers);
editToolbar = new Edit(map);
editToolbar.on("deactivate", function(evt) {
console.log("deactivate !!!! ");
currentLayer.applyEdits(null, [evt.graphic], null);
});
arrayUtils.forEach(layers, function(layer) {
var editingEnabled = false;
layer.on("dbl-click", function(evt) {
event.stop(evt);
if (editingEnabled === false) {
editingEnabled = true;
editToolbar.activate(Edit.EDIT_VERTICES , evt.graphic);
pre_evt = evt.graphic;
console.log("dbl-click & eidt true");
} else {
currentLayer = this;
editToolbar.deactivate();
editingEnabled = false;
console.log("dbl-click & eidt false ");
}
});
Pouvez-vous poster du code sur la façon dont vous soumettez les modifications? Utilisez-vous le jsapi featurelayer.applyEdits? Si tel est le cas, vous pouvez passer la géométrie à un service de géométrie et appeler la méthode simplify pour la rendre topologiquement légale, ce qui peut aider. (https://developers.arcgis.com/javascript/3/jsapi/geometryservice-amd.html#simplify ou https://developers.arcgis.com/javascript/3/jsapi/esri.geometry.geometryengine-amd.html #simplify) –
Eh bien, l'erreur dit à peu près tout - votre géométrie s'auto-recoupe donc pas correcte. Si vous êtes sûr que votre géométrie est correcte, pouvez-vous poster une photo de celle-ci? – andree