ThinkGeo.com    |     Documentation    |     Premium Support

Save shape edit to InMemoryFeatureLayer

Maybe this is easier than I’m making it, but I’m trying to save the edited shape from the edit overlay to the original feature being edited with this code.  After the map refreshes the shape doesn’t get updated and stays the way it was before.  This is an InMemoryFeatureLayer.


m_oCustomShapes.Open() 
          
        ’ Get new shape 
        Dim polShape As PolygonShape = m_oEditOverlay.EditShapesLayer.InternalFeatures(0).GetShape() 
  
        ’ Recreate feature with new shape - m_oRightClickedCustShape is the original feature 
        m_oRightClickedCustShape = New Feature(polShape, m_oRightClickedCustShape.ColumnValues) 
  
        m_oCustomShapes.FeatureSource.BeginTransaction() 
        m_oCustomShapes.FeatureSource.UpdateFeature(m_oRightClickedCustShape) 
        m_oCustomShapes.FeatureSource.CommitTransaction() 
        ’ Also tried this line, but internal features doesn’t return the original feature 
        'm_oCustomShapes.InternalFeatures(m_oRightClickedCustShape.Id) = m_oRightClickedCustShape 
        m_oCustomShapes.Close() 
        m_oDynamicOverlay.Refresh()


Hi Chad, 
  
 Based on those codes, the reason why the update doesn’t work I guess is the oRightClickedCustShape id value are not in the keys of the m_oCustomShape’featureSource, which means the update is based on the new feature id is equal to the keys when inserting the feature into the inmemoryfeature layer. 
  
 Here are some codes might be help: 
 When we insert the features: 
  
 Dim rectangleFeature As Feature = New Feature(rectangle) 
 shapeFeatureLayer.InternalFeatures.Add(rectangleFeature.Id, rectangleFeature) 
  
 When we update: 
         Dim currentEditFeature = wpfMap1.EditOverlay.EditShapesLayer.InternalFeatures(0) 
  
         inmemoryLayer.FeatureSource.BeginTransaction() 
         inmemoryLayer.FeatureSource.UpdateFeature(currentEditFeature) 
         inmemoryLayer.FeatureSource.CommitTransaction() 
  
  
 If the issue persists, don’t hesitate to let us know. 
 Thanks, 
 Johnny

Awesome, that did the trick!  I’m finding more and more that it’s best to use that key parameter when adding things to collections.  Thanks,



Chad

Hi Chad,



It’s glad to hear it works. If you have any problems, please feel free to let us know. 



Thanks, 

Johnny