ThinkGeo.com    |     Documentation    |     Premium Support

How to load Multiple Shapfiles .shp, .shx, .cpg, .dbf, .prj

I am new to loading shapfiles. I have studied MapSuit tool kit but confused. I have shapfiles with following extensions .shp, .shx, .cpg, .dbf,  .prj and .shp XML Document files. which are multiple of many types like roads, street, cities. Guide me through some sample code to load shape files with data. Your kit with every sample using WorldMapKitWmsDesktopOverlay. kindly consider my problem seriously.  Regards ZEESHAN


i just need my shapfiles to be loaded. 


 



hi. i have added some sample code below that might help. i am using for my solution. i am a beginner too so there should be better ways to load them. i think i needed to do is to rebuild the index the first time i attempted to load the files. this is done by calling the rebuildindex method. Also you only need to reference your.shp files for it to work. 
  
 here is the code: 
  
 string pathCoastLine = @"C:\WorldEne\Coastline_region.shp"; 
             //ShapeFileFeatureSource.BuildIndexFile(path); 
             ShapeFileFeatureLayer coastLineLayer = new ShapeFileFeatureLayer(pathCoastLine); 
             coastLineLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Park1; 
             coastLineLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; 
  
  
             AreaStyle x = new AreaStyle(new GeoPen(new GeoColor(100, 255, 0, 0)),new GeoSolidBrush(new GeoColor(50, 0, 255, 255))); 
             x.OutlinePen = new GeoPen(new GeoColor(100, 255, 255, 0)); 
              
             string pathpolyline = @"C:\WorldEne\mepa_region_merged.shp"; 
             //rebuild index file 
             ShapeFileFeatureSource.BuildIndexFile(pathpolyline); 
             ShapeFileFeatureLayer polylineLayer = new ShapeFileFeatureLayer(pathpolyline); 
             polylineLayer.ZoomLevelSet.ZoomLevel15.DefaultAreaStyle = AreaStyles.Urban1 ; 
             polylineLayer.ZoomLevelSet.ZoomLevel15.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;                                 
              
              
             LayerOverlay layerOverlay1 = new LayerOverlay(); 
             LayerOverlay layerOverlay2 = new LayerOverlay(); 
              
             layerOverlay1.Layers.Add(coastLineLayer);            
             layerOverlay2.Layers.Add(polylineLayer); 
             //polylineLayer.Name="PolyLineLayer"; 
             layerOverlay2.Name = "PolyLineLayer"; 
              
             winformsMap1.Overlays.Add(layerOverlay1); 
             winformsMap1.Overlays.Add(layerOverlay2); 
  
             winformsMap1.Overlays.MoveToTop(layerOverlay2);

Thank you Adrian for your colaboration.


Zeeshan,


 The code that Adrian shows should help a lot. I would add a couple of things to consider.


-Map Unit: You need to set the MapUnit of your map correctly for the shapefiles to display and the map to behave correctly. Look at the PRJ file for the projection information to see what unit the shapefile is in.


-Set the Style according to the shapefile type: If the shapefile is area based, you need an AreaStyle, line based a LineStyle and point based a PointStyle.


-Spatial Index: You need to build it only once to have a better performance.


-CPG file: If you have a cpg file (Code Page file), it means that your shapefile probably uses some characters for a language. I would look at that post for setting chinese characters. From this example, you should be able to set for your own language. 


gis.thinkgeo.com/Support/Discussion...fault.aspx


 If you still have problem, you can attach your shapefile or send it to us a support@thinkgeo.com


Thank you.