ThinkGeo.com    |     Documentation    |     Premium Support

How to save changes done on shapefile in same file

 Hello,


I am using shape files in my project.I am changing color of roads,lakes,highlighting some area,changing text style etc.


Now i want to save those changes of shape file i.e when i will open this shapefile next time i should able to see those changes in my shape file.


Please help me


thank you.



Hi ashwini,


In MapSuite products, we separate the data from representation. The shape files only contain source data (spatial data and attribute data); we use various styles to display these source data (by using various styles). 


In your scenario, you need to use your own logic to store these styles and restore them the next time (for example: use serialization file to store style settings for shape files).


Regards,


Ivan



thank you for rply.


i didnt get exact how to store that styles on shapefile.will you more elaborate on it plz..


thank you.



Ashwini,


Following is the code snippet showing how to save the text style into memory stream using the binary formatter. We can utilize the memory stream into local disk file if we want.
 

TextStyle textStyle1 = TextStyles.Canal1("Captical");
MemoryStream mem = SerializeBinaryViaBinaryFormatter(textStyle1);
TextStyle deTextStyle1 = (TextStyle)DeSerializeBinaryViaBinaryFormatter(mem);
 
private static MemoryStream SerializeBinaryViaBinaryFormatter(object request)
{
     BinaryFormatter serializer = new BinaryFormatter();
     MemoryStream memStream = new MemoryStream();
     serializer.Serialize(memStream, request);
     return memStream;
}
 
private static object DeSerializeBinaryViaBinaryFormatter(MemoryStream memStream)
{
     memStream.Position = 0;
     BinaryFormatter deserializer = new BinaryFormatter();
     object newobj = deserializer.Deserialize(memStream);
     memStream.Close();
     return newobj;
 }

 
Any more questions please feel free to let me know.
 
Thanks.
 
Yale