ThinkGeo.com    |     Documentation    |     Premium Support

Shapefile does not Render

 I have strange issue with a shape file that does not render the map when I attempt using webedition, however I was able see the map using the MapSuite Explorer and another 3rd party shape file viewer. 


I tested out  the shape file in question using my code & also using one of the example from vs2010 C# samples results were negative.  Not sure what is wrong,  Is there a way to figure out issue.


 


Regards


Prashant



Hello Prashant, 
  
 Have you debug the code and see if the ShapeFileFeatureLayer got the shape file? Because some times especially in web edition, the absolute address or relatively address will cause file not found problem. 
  
 Regards, 
  
 Gary

Thanks Gary for your response. I did debug and confirm the file path and found no problems. The same code appears to work for other shape files that were supplied from one of our vendor.  
  
 To rule out possible issues with my code,  I used the ShapeFilesOverGoogleMap.aspx.cs file from Thinkgeo C#HowToDoSamples,  I copied various shape files from our vendor into the \SampleData\USA folder and replaced the STATE.shp with each shape file at a time and rendered. Except for the questioned shape file that did not draw. 
  
  Do you think you could help me looking at it, I can send you the shapefile and its accessories? 
  
 Regards, 
  
 Prashant

Any luck with the issue that i’m having with shapefile. The code below is very standard and I got it form the samples. The file in question UGA_region.shp was copied to that folder including other shape files form our vendor. Except for that one others show up on the map fine.  
  
   if (!Page.IsPostBack)
            {
                Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
               // Map1.CurrentExtent = new RectangleShape(-13939426.6371, 6701997.4056, -7812401.86, 2626987.386962);
                Map1.MapUnit = GeographyUnit.Meter;

                Map1.MapTools.OverlaySwitcher.Enabled = true;
                Map1.MapTools.MouseCoordinate.Enabled = true;

                GoogleOverlay google = new GoogleOverlay(“Google Map”);
                google.JavaScriptLibraryUri = new Uri(ConfigurationManager.AppSettings[“GoogleUriV3”]);
                google.GoogleMapType = GoogleMapType.Normal;

ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/USA/UGA_region.shp"));
                shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle =         AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100,212,220,184), GeoColor.FromArgb(255,132,132,154), 1);
                shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

                Proj4Projection proj4 = new Proj4Projection();
                proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
                proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();
                shapeFileFeatureLayer.FeatureSource.Projection = proj4;

                LayerOverlay shapeOverlay = new LayerOverlay(“Shape Overlay”, false, TileType.SingleTile);
                shapeOverlay.Layers.Add(shapeFileFeatureLayer);
                shapeOverlay.TransitionEffect = TransitionEffect.None;

                Map1.CustomOverlays.Add(google);
                Map1.CustomOverlays.Add(shapeOverlay);
            } 
 

Hello Prashant, 
  
 Thanks for your code, why are you comment the Map.CurrentExtent? 
  
 Regards, 
  
 Gary

I commented off current extent on the code because I earlier had the Map1.CurrentExtent=shapeFileFeatureLayer.GetBoundingBox(); I removed the code when I sent you the above show it as is.

BTW, thanks guys my issue got resolved. The shapefile was in meters and my code was in decimal degrees. I adjusted and it works. 
 Is there a way to determine the shapefile’s units in code to see if it is meters or feet or decimal degrees? 
  


 Hello Prashant,


 
 You can determine the projection of your shapefiles which is often included in the PRJ file of each shapefile and you can get the Code to be used with Proj4 in the website spatial-reference.org.
 
 Regards,
 
 Gary