ThinkGeo.com    |     Documentation    |     Premium Support

Shape layer won't show on map

Hi, I’ve got some shape files which load fine and other which don’t error out when loading but simply do not show up on the map. When  I load those shape files in external tools like mapshaper.org or QGis they load fine and look as I expect them to look. They are some of the simpler shape files we have so it really confuses me why much larger ones load and these ones don’t. 



Code to create shape layer and set projection on it. I’ve attached a zip with the shape file which is pretty basic. If anyone can help I would greatly appreciate it. 


01.var shapeLocation = @“C:\Users\Kevin.IWS.000\AppData\Local\Temp\Falcon32015\SavedMaps\55697\55697-new.shp”;
02.ShapeFileFeatureLayer.BuildIndexFile(shapeLocation, BuildIndexMode.Rebuild);
03.ShapeFileFeatureLayer shapeLayer = new ShapeFileFeatureLayer(shapeLocation);
04.shapeLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle =  new LineStyle(new GeoPen(GeoBrushes.PastelYellow));
05. 
06.Proj4Projection proj4 = new Proj4Projection();
07.proj4.InternalProjectionParametersString = Proj4Projection.GetWgs84ParametersString();
08.proj4.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString();
09. 
10.shapeLayer.FeatureSource.Projection = proj4;
11.shapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;









55697.zip (1.27 KB)

Hi Kevin, 
  
 Thanks for your data and code. 
  
 Your shape won’t be shown mainly because it’s a area shape, but you only set the line style for layer. 
  
 And if you set projection, you need choose mapunit equal meter and assign the correct extent for it. 
  
 Please see my test code as below, which render a polygon on map correct from your data. 
  
  private void WpfMap_Loaded(object sender, RoutedEventArgs e)
        {
            Map1.MapUnit = GeographyUnit.Meter;
            string shapeLocation = @“D:\55697.shp”;
            ShapeFileFeatureLayer.BuildIndexFile(shapeLocation, BuildIndexMode.Rebuild);
            ShapeFileFeatureLayer shapeLayer = new ShapeFileFeatureLayer(shapeLocation);
            shapeLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(new GeoPen(GeoBrushes.Red));
            shapeLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1;
            shapeLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle= PointStyles.Capital1;

            shapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

            Proj4Projection proj4 = new Proj4Projection();
            proj4.InternalProjectionParametersString = Proj4Projection.GetWgs84ParametersString();
            proj4.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString();
            proj4.Open();

            shapeLayer.FeatureSource.Projection = proj4;
            shapeLayer.Open();


            LayerOverlay overlay = new LayerOverlay();
            overlay.Layers.Add(shapeLayer);

            Map1.Overlays.Add(overlay);

            Map1.CurrentExtent = shapeLayer.GetBoundingBox();

            Map1.Refresh();
        } 
 
  
 Regards, 
  
 Don

That worked! Thank you very much. I didn’t think about setting the area style. I had the correct extent and map unit set already but I was missing the area style. I appreciate the quick and accurate response.

Hi Kevin, 
  
 Any question please let us know. 
  
 Regards, 
  
 Don