ThinkGeo.com    |     Documentation    |     Premium Support

Saving layer configuration

Hi



I’m not sure if this is the correct place to post this, but does anyone knows of a tool I can use to save layer configuration data.



What I mean is I need to allow my customers to provide a bunch of shape files and for each one configure and save information about colour, zoom level, line thickness etc into a file. I would then take the file and the shape files provided by the customer and use it to display the layers in our mapping client.



One customer has suggested using your GIS editor and taking a config file but it seems like a little overkill.



Any ideas?



Cheers



Steve

Hi Steve, 
  
 Thanks for your post, GeoSerializer could be used in this case with following code: 
  
             ShapeFileFeatureLayer shpLayer = new ShapeFileFeatureLayer(@"…\testdata\data\countries02.shp"); 
             shpLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
             shpLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.Capital1; 
             GeoSerializer geoSerializer = new GeoSerializer(); 
             string serializedString = geoSerializer.Serialize(shpLayer);//you may put serializedString into a txt file 
  
             ShapeFileFeatureLayer recoveredLayer = geoSerializer.Deserialize(serializedString) as ShapeFileFeatureLayer; 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer

Thanks Summer. 
  
 What I really need is a front end that my customer can use to select styles and zoom levels that can then save that information to a config file. My app can then read the config info from the file and use it to style the layers. 
  
 Cheers 
  
 Steve

Hi Steve, 
  
 Thanks for your further information, actually, one suggestion is to creat your own customsetting class with code similar to the following: 
  
  private void DisplayMap_Load(object sender, EventArgs e) 
         { 
             GeoSerializer geoSerializer = new GeoSerializer();  
  
             CustomerSetting customerSetting = new CustomerSetting(); 
             customerSetting.CustomerZoomlevel = winformsMap1.ZoomLevelSet.ZoomLevel01; 
             customerSetting.CustomerGeoColor = GeoColor.SimpleColors.Red; 
  
             string serializedString = geoSerializer.Serialize(customerSetting);//you may put serializedString into a file 
  
             CustomerSetting recoveredSetting = geoSerializer.Deserialize(serializedString) as CustomerSetting; 
         } 
  
         [Serializable] 
         class CustomerSetting 
         { 
             public ZoomLevel CustomerZoomlevel; 
             public GeoColor CustomerGeoColor; 
         } 
  
 if you have any more question , please feel free to let us know. 
  
 Best Regards 
  
 Summer