${iServerJava6R_EditFeaturesParameters_Title}
${iServerJava6R_EditFeaturesParameters_Description}
/// <summary>${iServerJava6R_EditFeaturesService_method_ProcessAsync_D}</summary> /// <param name="parameters">${iServerJava6R_EditFeaturesService_method_ProcessAsync_param_Parameters}</param> /// <param name="state">${iServerJava6R_EditFeaturesService_method_ProcessAsync_param_state}</param> public void ProcessAsync(EditFeaturesParameters parameters, object state) { if (parameters == null) { throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull); } if (string.IsNullOrEmpty(this.Url)) { throw new InvalidOperationException(ExceptionStrings.InvalidUrl); } if (parameters.EditType == EditType.ADD) { if (parameters.IsUseBatche) { base.Url += ".json?isUseBatche=true&debug=true"; } else { base.Url += ".json?returnContent=true&debug=true";//直接获取添加地物SmID } } else if (parameters.EditType == EditType.DELETE) { base.Url += ".json?_method=DELETE&debug=true"; } else { base.Url += ".json?_method=PUT&debug=true"; } base.SubmitRequest(base.Url, GetParameters(parameters), new EventHandler<RequestEventArgs>(request_Completed), state, true, true); }
//删除选中地物 private void DeleteFeature_Click(object sender, RoutedEventArgs e) { EditFeaturesParameters param = new EditFeaturesParameters { EditType = EditType.DELETE, IDs = featureIDs, }; EditFeaturesService deleteService = new EditFeaturesService(url2); deleteService.ProcessAsync(param); deleteService.ProcessCompleted += new EventHandler<EditFeaturesEventArgs>(deleteService_ProcessCompleted); deleteService.Failed += new EventHandler<ServiceFailedEventArgs>(deleteService_Failed); }
/// <summary>${iServerJava6R_EditFeaturesService_method_ProcessAsync_D}</summary> /// <overloads>${iServerJava6R_EditFeaturesService_method_ProcessAsync_overloads_D}</overloads> public void ProcessAsync(EditFeaturesParameters parameters) { ProcessAsync(parameters, null); }
private System.Collections.Generic.Dictionary<string, string> GetParameters(EditFeaturesParameters parameters) { Dictionary<string, string> dictionary = new Dictionary<string, string>(); if (parameters.EditType == EditType.DELETE) { if (parameters.IDs != null) { string ids = string.Empty; List<string> idslist = new List<string>(); for (int k = 0; k < parameters.IDs.Count; k++) { //idslist.Add(parameters.IDs[k].ToString()); dictionary.Add(k.ToString(System.Globalization.CultureInfo.InvariantCulture), parameters.IDs[k].ToString(System.Globalization.CultureInfo.InvariantCulture)); } //ids += string.Join(",", idslist.ToArray()); //dictionary.Add("Edit", ids); } else { throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull); } } else { if (parameters.Features != null && parameters.Features.Count > 0) { string json = ""; List<string> list = new List<string>(); for (int i = 0; i < parameters.Features.Count; i++) { Dictionary<string, string> dict = new Dictionary<string, string>(); ServerFeature sf = parameters.Features[i].ToServerFeature(); //FiledNames dict.Add("fieldNames", JsonHelper.FromIList(sf.FieldNames)); //FiledValues dict.Add("fieldValues", JsonHelper.FromIList(sf.FieldValues)); //Geometry if (parameters.EditType == EditType.UPDATA) { //更新时,ID的个数和Feature的个数不一致更新就不起作用! if (parameters.IDs.Count == parameters.Features.Count) { if (sf.Geometry != null) { sf.Geometry.ID = parameters.IDs[i]; } else { sf.ID = parameters.IDs[i]; } } } dict.Add("ID", sf.ID.ToString(System.Globalization.CultureInfo.InvariantCulture)); dict.Add("geometry", sf.Geometry == null ? "null" : ServerGeometry.ToJson(sf.Geometry)); list.Add(EditGetStringFromDict(dict)); } json += string.Join(",", list.ToArray()); dictionary.Add("Edit", json); } } return dictionary; }
private void polygon_DrawCompleted(object sender, DrawEventArgs e) { //将绘制的地物显示在TempLayer中 Feature f = new Feature() { Geometry = e.Geometry, Style = new PredefinedFillStyle() { Fill = new SolidColorBrush(Colors.Green) }, }; tempLayer.AddFeature(f); EditFeaturesParameters param = new EditFeaturesParameters { EditType = EditType.ADD, Features = new FeatureCollection() { f } }; //与服务器交互 EditFeaturesService editService = new EditFeaturesService(url2); editService.ProcessAsync(param); editService.Failed += new EventHandler<ServiceFailedEventArgs>(editService_Failed); editService.ProcessCompleted += new EventHandler<EditFeaturesEventArgs>(editService_ProcessCompleted); }
private void MyDataGrid_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e) { EditFeaturesParameters updateParameters = new EditFeaturesParameters { EditType = EditType.UPDATA, Features = new FeatureCollection { MyDataGrid.SelectedFeatures[0] }, IDs = new List<int> { Convert.ToInt32(MyDataGrid.SelectedFeatures[0].Attributes["SMID"].ToString()) } }; EditFeaturesService updateByAttributesService = new EditFeaturesService(url2); updateByAttributesService.ProcessAsync(updateParameters); updateByAttributesService.ProcessCompleted += new EventHandler<EditFeaturesEventArgs>(updateByAttributesService_ProcessCompleted); updateByAttributesService.Failed += new EventHandler<ServiceFailedEventArgs>(updateByAttributesService_Failed); }
//更新地物形状 private void editfeature_GeometryEdit(object sender, Edit.GeometryEditEventArgs e) { if (e.Action == SuperMap.Web.Actions.Edit.GeometryEditAction.EditCompleted) { features.Clear(); if (tempFeature == null) { tempFeature = new Feature(); } tempFeature.Geometry = e.Feature.Geometry; SmID = Convert.ToInt32(e.Feature.Attributes["SMID"].ToString()); features.Add(tempFeature); EditFeaturesParameters updateParameters = new EditFeaturesParameters { EditType = EditType.UPDATA, Features = features, IDs = new List<int>() { SmID }, }; EditFeaturesService editService = new EditFeaturesService(url2); editService.ProcessAsync(updateParameters); editService.ProcessCompleted += new EventHandler<EditFeaturesEventArgs>(updateService_ProcessCompleted); editService.Failed += new EventHandler<ServiceFailedEventArgs>(updateService_Failed); } }
private void EditService_Click(object sender, RoutedEventArgs e) { Feature f = new Feature { Geometry = new GeoRegion { Parts = new ObservableCollection<Point2DCollection> { new Point2DCollection { new Point2D(-100,60), new Point2D(-100,62), new Point2D(-40,55) } } } }; f.Attributes.Add("SMID", "1166"); f.Attributes.Add("SMSDRIW", "-7.433472633361816"); f.Attributes.Add("POP_1994", "123456789"); EditFeaturesParameters param = new EditFeaturesParameters() { EditType = EditType.ADD, //IDs = new List<int> { 248 } Features = new FeatureCollection { f } }; EditFeaturesService editFeaturesService = new EditFeaturesService("http://localhost:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/World/features"); editFeaturesService.ProcessAsync(param); editFeaturesService.ProcessCompleted += new EventHandler<EditFeaturesEventArgs>(editFeaturesService_ProcessCompleted); editFeaturesService.Failed += Failed; }