ThinkGeo.com    |     Documentation    |     Premium Support

Failed to show the shape file on the map

Recently I got a defect from my customer.

It said it failed to show the shape file on the map.

I checked the shape file. It’s file type is ShapeFileType.PointZ.



I noticed that there is a example for shape file:

wiki.thinkgeo.com/wiki/File:DesktopEditionSample_ShapefileToGoogleMap_CS_100609.zip

I only changed the shape file name, using the shape file come from my customer. 

Also no shape file on the map.



Following is the code:

        private void TestForm_Load(object sender, EventArgs e)

        {

            //We need to set the map unit to meter because we are using Google Map Spherical Mercator projection.

            winformsMap1.MapUnit = GeographyUnit.Meter;

           

            winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255));



            //Sets Google Map as the background map.

            GoogleMapsOverlay googleMapsOverlay = new GoogleMapsOverlay();

            //winformsMap1.Overlays.Add(googleMapsOverlay);



            //Projection to go from Geodetic (Longitude/Latitude) to Google Map projection (Spherical Mercator).

            Proj4Projection proj4 = new Proj4Projection();

            //proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326); //Geodetic projection (Longitude/Latitude).

            string prjFileText = System.IO.File.ReadAllText(@"…\Data\Survey_points.prj"); //get the text of the .prj file.



            proj4.InternalProjectionParametersString = ManagedProj4Projection.ConvertPrjToProj4(prjFileText);

            proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();



            ShapeFileFeatureLayer schoolShapeLayer = new ShapeFileFeatureLayer(@"…\Data\Survey_points.shp");

            schoolShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimplePointStyle(PointSymbolType.Circle, GeoColor.StandardColors.Red,GeoColor.StandardColors.Black, 200);

            schoolShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.CreateMaskTextStyle(“NAME”, new GeoFont(“Arial”, 10, DrawingFontStyles.Bold), 

            new GeoSolidBrush(GeoColor.StandardColors.Black), new AreaStyle(new GeoSolidBrush(GeoColor.StandardColors.LightGoldenrodYellow)), 13, 0);

            schoolShapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            //Sets the projection to the shapefile layer.

            schoolShapeLayer.FeatureSource.Projection = proj4;

            

            LayerOverlay staticOverlay = new LayerOverlay();

            staticOverlay.Layers.Add(“SchoolShapeLayer”, schoolShapeLayer);

           

            winformsMap1.Overlays.Add(staticOverlay);



            //Sets the extent of the map as the bounding box of the shapefile layer as projected (Google Map Spherical Mercator).

            schoolShapeLayer.Open();

            winformsMap1.CurrentExtent = schoolShapeLayer.GetBoundingBox();

            schoolShapeLayer.Close();



            winformsMap1.Refresh();

        }





Can you please investigate?

Thanks and best regards

ShapefileToGoogleMap.zip (254 KB)

Hi ThinkGeo Support, 
 We have done some further investigations. The shape file attached contains some invalid data. The (x,y) coordinates were copied and pasted from an excel file which contained some blank lines into ArcGIS shape file editor. The data from these blank line were invalid, - shown as zeros in ArcGIS even the raw values were >1.e308.  
 When we remove these invalid features from the shape file we can draw the shape file without problems. 
 We apologize.  You are welcome to remove this question from the discussion forum. 
 Best regards 
 Niels and Fang 


Hi Guys, 
  
  Welcome Fang to mapsuite forumn world! And, thanks Niels for telling that it is sorted out.  
  
 if you have any more question, please feel free to let us know. 
  
 Best Regards 
  
 Summer