ThinkGeo.com    |     Documentation    |     Premium Support

S57 Layer

Hi there,


I'm trying to render S57 data cells into Desktop component, but I'm not sure if what I'm doing is right..


The S57 file has got 5 classes "Area", "Point", "Line", "DSID" and "Meta" in my code I was able to fetch the features for the first three classes, but the others threw exceptions.. I believe the other two classes contain meta data needed for styling features and informational data


I would really appreciate it if you can advice as how to get the data stored in "DSID" and "META" classes...


Here is snippet of the code I'm using:




                S57FeatureLayer areaLayer = new S57FeatureLayer(@"c:\\US3MI60M.000", null, "OGRSchema", "Area");

                areaLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColor.SimpleColors.Black, 2), new GeoSolidBrush(new GeoColor(0, GeoColor.SimpleColors.Black)));// AreaStyles.Country1;

                areaLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;



                S57FeatureLayer pointLayer = new S57FeatureLayer(@"c:\\US3MI60M.000", null, "OGRSchema", "Point");

                pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(PointSymbolType.Circle, new GeoSolidBrush(GeoColor.SimpleColors.Transparent), new GeoPen(GeoColor.SimpleColors.Green), 1);

                pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;



                S57FeatureLayer lineLayer = new S57FeatureLayer(@"c:\\US3MI60M.000", null, "OGRSchema", "Line");

                lineLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(new GeoPen(GeoColor.SimpleColors.Red));

                lineLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;



                S57FeatureSource metaLayer = new S57FeatureSource(@"c:\\US3MI60M.000", null, "OGRSchema", "Meta");

                metaLayer.Open();

                Collection<feature> featuresMeta = metaLayer.GetAllFeatures(ReturningColumnsType.AllColumns);

                metaLayer.Close(); 

 

                LayerOverlay layerOverlay = new LayerOverlay();

                layerOverlay.Layers.Add(areaLayer);

                layerOverlay.Layers.Add(pointLayer);

                layerOverlay.Layers.Add(lineLayer);

                winformsMap1.Overlays.Add(layerOverlay);</feature>


 


I sent the S57 file to support@thinkgeo.com, Subject: S57 Layer



Mostafa,


Thanks for your detail information about your problem.


We are on the initial stage of supporting S57 data, so up to now I am afraid we don't support DSID & Meta, sorry for the inconvinience now.


There is another post discussing the same topic, you can look at it

gis.thinkgeo.com/Support/Dis...fault.aspx


Thanks,


James

 



Thank you James for this…  
  
 Any ideas you can advise about your next stage of supporting S57 fully? and how soon this would be? 
  


Mostafa, 
  
 You’re welcome, currently we don’t have plan to enhance S57 layer. 
  
 Thanks, 
  
 James