ThinkGeo.com    |     Documentation    |     Premium Support

Map not showing

I have followed the QuickStart Guide and below is my code:


if (!IsPostBack)

            {

                // Set the Map Unit. The reason for setting it to DecimalDegrees is that is what the shapefile's unit of measure is inherently in.

                Map1.MapUnit = GeographyUnit.DecimalDegree;



                // We create a new Layer and pass the path to a Shapefile into its constructor.

                ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"D:\Documents and Settings\Administrator\Desktop\KCDB1\EQPTROOM_lin.shp");



                //ShapeFileFeatureLayer.BuildIndexFile(@"D:\Documents and Settings\Administrator\Desktop\KCDB1\EQPTROOM_lin.shp");



                //worldLayer.RequireIndex = false;



                // Set the worldLayer with a preset Style, as AreaStyles.Country1 has YellowGreen background and black border, our worldLayer will have the same render style. 

                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;



                // This setting will apply from ZoonLevel01 to ZoomLevel20, that means we can see the world the same style with ZoomLevel01 all the time no matter how far we zoom out/in.

                worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;



                // We need to add the world layer to map's Static Overlay.

                Map1.StaticOverlay.Layers.Add(worldLayer);



                // Set a proper extent for the map, that's the place you want it to display.

                Map1.CurrentExtent = new RectangleShape(5, 78, 30, 26);

            }


Basically the code is the same as the guide except for the path to the shapefile. My shapefiles are custom-made and consists of only .dbf, .shp and .shx.


Hence I set RequireIndex to false and even after to use the BuildIndexFile method, the map was not displayed on the IE. However when I used the sampe shapefile cntry02.shp, the map was able to be displayed.


So any solution or suggestion will be welcomed. Thanks



hi, don 
  
 I guess that the problem is caused by that you don’t set the DefaultLineStyle for your shape files whose geometry type is line. The code likes below: 
 worldLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Railway1; 
  
 Please try it and let me know if you still have any problems about it. 
  
 Thanks, 
 Khalil

Thanks Khalil for replying. 
  
 Yes you are right all my shapefiles are made up of lines. I tried the line of code you suggested but still empty space was displayed. 
  
 My shapefile is able to display properly in the MapWindow GIS program, which I used to edit the shapefile. Hence I guess there must be something missing in my code. 
  
 Thanks.

don, 
  
 First off, you need to make sure that you have set the right map unit(DecimalDegree or Meter or Feet), and then you need to set the CurrentExtent. So if you have set the right map unit and maybe the problem is that your current extent is so big that you can’t see the lines. Please add the code below to your web app and try it again. 
                 worldLayer.Open(); 
                 Map1.CurrentExtent = worldLayer.GetBoundingBox(); 
                 worldLayer.Close(); 
  
 Also you could drag the shape files into the Map Suite Explorer which is included in our installation. If your shape files still can’t display, please provide us the sample code and the data you are consuming. 
  
 Thanks, 
 Khalil

Hi Khalil, 
  
 Thanks for your help. Now I am able to see the shapefile. However it has be to zoomed to until level 19 before I can see it. Is there a way to set the level 19 as level 1?

don, 
  
 Maybe you have some misunderstanding for the ZoomLevel. It defines the situation in which we want to display the features, and every ZoomLevel has its own scale and resolution. The PresetZoomLevels section of Map Suite Web Edition 3.0 QuickStart Guide has definitely clarified it. 
 If you have set  
  
 Thanks, 
 Khalil