ThinkGeo.com    |     Documentation    |     Premium Support

Displaying .TAB file

Hello Community & Support Team,



I am completely new to GIS issues and am currently trying to load and display sample .TAB files. I do this according to the code you provided at the “How do I”-samples. While the sample .TAB file you provided with the code (HoustonMuniBdySamp_Boundary.TAB) loads and displays just fine, loading and displaying a different TAB file results in a white window (no error message). I guess it’s just something wrong with my settings, or projection, style or data format, but I don’t get it. 



 Although it’s almost the same as your sample code, here is my code:


winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
            winformsMap1.ThreadingMode = MapThreadingMode.SingleThreaded;
 
            WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay();
            winformsMap1.Overlays.Add(worldMapKitDesktopOverlay);
 
            winformsMap1.CurrentExtent = new RectangleShape(-96.51477, 30.759543, -94.355788, 28.910652);
            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
 
            TabFeatureLayer.BuildIndexFile(@“Sample.TAB”);
            TabFeatureLayer worldLayer = new TabFeatureLayer(@“Sample.TAB”);
            worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, GeoColor.SimpleColors.Green), GeoColor.SimpleColors.Green);
            worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
 
            LayerOverlay staticOverlay = new LayerOverlay();
            staticOverlay.Layers.Add(“WorldLayer”, worldLayer);
            winformsMap1.Overlays.Add(staticOverlay);
 
            winformsMap1.Refresh();

I know that the AreaStyle section is superfluous, but I just tried the easiest way.

When I ogr2ogr my .TAB-File into a .shp-File, the MapSuite Explorer is able to display the .shp Files after building an index file automatically, but displaying this .shp file in my own WinForm using a ShapeFileFeatureLayer also results in a white window.



Any hint or help is appreciated.

Thanks in advance!

Hi Hanna, 
  
 Thanks for your post, I am sorry to say that the download for your file is not successful, but, from your code, I think there are two potential solutions: 
  
 1. change  
    winformsMap1.CurrentExtent = new RectangleShape(-96.51477, 30.759543, -94.355788, 28.910652); 
    to 
    worldLayer.Open() 
    winformsMap1.CurrentExtent = worldLayer.GetBoundingBox(); 
    worldLayer.Close() 
 2. if previous solution doesn’t solve the problem then keep previous change and  
  
    change 
    winformsMap1.MapUnit = GeographyUnit.DecimalDegree; 
    to 
    winformsMap1.MapUnit = GeographyUnit.Meter; 
  
 If the problem is still there would you please zip your data and reupload it for us to test? 
  
 Thanks, 
  
 Summer

Hi Summer,



thank you for your fast reply. I changed my code according to your suggestions and now at least the background is painted in blue, as it should be. Nevertheless, still no map data are displayed.



I don’t know if it’s of any matter to my problem, but when I zoom into the map to a certain level, my window shows a message telling  the following: "This method will return too many cells that might cause performance problem. Please using GetIntersectingRowColumnRange method instead."



I packed some data samples again and hope they’re complete this time.



Thanks for your time!



Hanna



Edit: I tried the upload several times and somehow it won’t work. I’m going to send them via e-Mail as I read in the FAQ.

Summer, 



I have just found out that the error message about the performance problem does show up only when I use DecimalDegree. Using Meter as MapUnit, there’s no such error message, so I assume that’s the correct one. Nevertheless, there’s still no map data. Maybe I need to center the map somehow, or my scale is incorrect - or something completely different?



Edit: Sorry, I have to eat my words. This post is complete nonsense, the error message still appears at a certain zooming level.

Hi Hanna, 
  
 Thanks for your data, would you please try following code: 
  
    winformsMap1.MapUnit = GeographyUnit.Meter; 
             winformsMap1.ThreadingMode = MapThreadingMode.SingleThreaded; 
  
             WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay(); 
             winformsMap1.Overlays.Add(worldMapKitDesktopOverlay); 
  
             winformsMap1.CurrentExtent = new RectangleShape(-96.51477, 30.759543, -94.355788, 28.910652); 
             winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean); 
  
             TabFeatureLayer.BuildIndexFile(@"C:\Users\xiachao\Desktop\Sample\Testdata.TAB"); 
             TabFeatureLayer worldLayer = new TabFeatureLayer(@"C:\Users\xiachao\Desktop\Sample\Testdata.TAB"); 
             worldLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.Capital1; 
             worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
  
  
             LayerOverlay staticOverlay = new LayerOverlay(); 
             staticOverlay.Layers.Add("WorldLayer", worldLayer); 
  
             winformsMap1.Overlays.Add(staticOverlay); 
             worldLayer.Open(); 
             winformsMap1.CurrentExtent = worldLayer.GetBoundingBox(); 
  
             winformsMap1.Refresh(); 
  
 Now it should work, if you have any more question, please feel free to let us know. 
  
 Best Regards 
  
 Summer

Summer, 
  
 it works now thanks to your suggestion. Can’t believe I could not think of the point style on my own. Thanks a lot!

Hi Hanna, 
  
 Great to hear it is sorted out, if you have any more question, please feel free to let us know. 
  
 Best Regards 
  
 Summer