01.'Here I added the selected feature to a collection02.IfnotesCollection.Count > 0Then03.04.WpfMap_Main.EditOverlay.EditShapesLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Transparent, GeoColor.StandardColors.DarkRed)05.06.WpfMap_Main.EditOverlay.EditShapesLayer.InternalFeatures.Add(notesCollection(0))07.08.'I am able to see the added vertex in the EditOverlay but when I 'save it' it does not save09.WpfMap_Main.EditOverlay.CanAddVertex =True10.WpfMap_Main.EditOverlay.CanRemoveVertex =True11.WpfMap_Main.EditOverlay.CanReshape =True12.WpfMap_Main.EditOverlay.CanRotate =False13.WpfMap_Main.EditOverlay.CanDrag =True14.15.16.'set the edit overlay so that its features are editable17.WpfMap_Main.EditOverlay.CalculateAllControlPoints()18.19.EndIf20.'##########################################21.22.'in a second part of the program, this section runs after clicking a save toggle button23.Whilei < WpfMap_Main.EditOverlay.EditShapesLayer.InternalFeatures.Count24.25.DimnewPolyShapeAsMultipolygonShape = WpfMap_Main.EditOverlay.EditShapesLayer.InternalFeatures(i).GetShape()26.'I added the ShapefileFeatureLayer to a 'notesList' collection27.'Both the index of the EditOverlay.InternalFeatures and notesCollection match the same feature28.'Pulling the ID from the original and assigning it to the edited feature to update29.newPolyShape.Id = notesList(i).Id.ToString()30.31.'open the ShapeFileLayer and insert the new geometry32.While(notesLayer.IsOpen)33.notesLayer.Close()34.EndWhile35.36.notesLayer.ReadWriteMode = ShapeFileReadWriteMode.ReadWrite37.notesLayer.Open()38.notesLayer.EditTools.BeginTransaction()39.'insert the new shape into the feature40.notesLayer.EditTools.Update(newPolyShape)41.notesLayer.EditTools.CommitTransaction()42.notesLayer.Close()43.WpfMap_Main.EditOverlay.Close()44.45.i = i + 146.EndWhile47.48.'I then clean up the collections so the next time it is ran, the indexes will match again49.'and then I refresh the map50.notesList.Clear()51.WpfMap_Main.EditOverlay.EditShapesLayer.InternalFeatures.Clear()52.WpfMap_Main.Refresh()I have a polygon shapefile I am trying to edit. Currently, I am selecting a feature from the shapefile, adding it to the EditShapesLayer.InternalFeatures collection and setting the EditOverlay parameters so that I can add, remove, reshape, or drag the polygon. Then I calculate all the control points for the EditOverlay. I have a save button that then iterates through the EditShapesLayer.internalFeatures that grabs the shape of each internal feature, opens the shapefile, updates the feature, commits the transaction, and closes the shapefile.
Whenever I remove a vertex, reshape a polygon feature, or drag it to a new location, the update saves. However, when I try adding a vertex, it does not save. Also, on occasion, when I am double-clicking a vertex to remove it, I will get a Null Reference Exception.
I am not sure if I am missing a step or am going about this in a wrong manner. Aside from any possible syntax errors that may have resulted from copying the code across, if there a flaw in my logic somewhere? Do you have a sample that does something similar to what I am trying to accomplish?
Edit Overlay Add Vertex Not Saving
I am using the WPF Desktop Evaluation Edition 7.0 by the way.
Hi Brandon,
Thanks for your post, we tried to recreate your problem on our end, but the problem didn't show up, attached is our test sample, would you please check if there are any thing we missed?
Thanks,
Summer
006_005_004_003_002_001_sample.txt (1.41 KB)
My thoughts on how the features were stored were incorrect. I though each individual change was saved in the InternalFeatures so I was trying to iterate through for how many changes I did for the one feature. Basically, it was just a misunderstanding on my part and a simple mistake. I made it too complicated.
Thanks!
Hi Brandon,
Great to hear the problem is sorted out, if you have any more question, please feel free to let us know.
Best Regards
Summer