ThinkGeo.com    |     Documentation    |     Premium Support

Deleting Feature in shapefile

Hi


I've recently started using the MapSuite Evaluation version (MapSuiteCore 3.1.19, DesktopEdition 3.0.199) and was checking out the edit functionalities.


I tried to delete a feature from a shapefile uing the code sniipet attached and although the transaction results show that the feature has been deleted(The TotalSuccesCount returns 1), it doesnt get deleted from the shapefile. Please note that i open the shapefile using the readwrite flag.


Please advise if there's something wrong with the way i'm coding this.


Regards,


Arish



Layer.Open(); 
Layer.EditTools.BeginTransaction(); 
Layer.EditTools.Delete("30"); 
TransactionResult Result; Result = worldLayer.EditTools.CommitTransaction(); 
MessageBox.Show(Result.TotalSuccessCount.ToString()); 
Layer.Close(); 

winformsMap1.Refresh(); 



Arish, 
  
 Welcome to evaluate Map Suite products! 
  
 To improve the performance of shape file editing, we didn’t physically remove the records when you call CommitTransaction(), instead we just mark them as deleted and those records will not be accessed in our system. That’s why if you are using some other tools to open it, those records might be still there. 
   
 You can call ShapeFileFeatureSource.Rebuild() to make the changes really take effects; for your case it will delete the marked records physically from the shape file.  
  
 By the way, we will expose Rebuild() method to ShapeFileFeatureLayer class from next version. 
  
 Thanks, 
 ThinkGeo Support 


Hi Lee,


Excuse me butting in.


I understand the logic behind marking records as deleted, however as there is no way I can see of telling if a feature is deleted and the FetureSource.GetCount() returns the count of all features including those that are deleted it's kind if difficult to work out what is and what is not actually there!


Regards


John


 



John,


Thanks for pointing this out. It’s a bug in GetCount method; it shouldn’t include the marked records. We have added it to our tracking system and it will be fixed in the next version.


Thanks,

ThinkGeo Support