ThinkGeo.com    |     Documentation    |     Premium Support

MultipleShapeFileFeatureLayer in spherical mercator World Map Kit

 In comparing the World Map Kit demos that come with the decimal degree data vs. spherical mercator, I was wondering why in the decimal degree demo, the sample code uses the MultipleShapeFileFeatureLayer class. However, in the spherical mercator data demo, the code manually adds separate layers for each state:


 



 string[] folders = Directory.GetDirectories(dataFolder + "\\" + StateLayer);
                foreach (string folder in folders)
                {
                    string[] files = Directory.GetFiles(folder, "*.shp");
                    foreach (string file in files)
                    {
                        WorldMapKitShapeFileFeatureLayer layer = new WorldMapKitShapeFileFeatureLayer(file);
                        layer.Name = "County";
                        layer.DrawingQuality = DrawingQuality.HighQuality;
                        layer.ZoomLevelSet.ZoomLevel12.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 242, 239, 233));
                        layer.ZoomLevelSet.ZoomLevel12.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                        staticLayers.Add(layer);
                    }
                }


Hi Paul, 
  
 Thanks for your post. 
  
 I reviewed the code and think what you said should be the code of function LoadStateSymbolLayers. 
  
 I compare both code for Spherical mercator and Decimal degree, it looks totally the same, and I haven’t found we use the MultipleShapeFileFeatureLayer class in both of the 2 solutions. 
  
 Are you comparing the latest version of them? 
  
 Regards, 
  
 Don

Our DD dataset was from 2009, and we picked up the SM data either late 2010 or early 2011. 
  
 The reason I ask is I cannot get the MultipleShapeFileLayer to work with the SM data. It fails to render the data. Pointing the same code at our DD data renders successfully. I was wondering if there was something fundamentally different with the SM data that prevents it from working. 
  
 Do you know why the samples use loops with multiple layers created instead of MultipleShapeFileFeatureLayers?

Paul, 
  
 I think that’s because data format changed, sorry I don’t have exisiting dataset for 2009 and 2010 WMK for make sure that. 
  
 The MultipleShapeFileFeatureLayer should work like this: 
   
 string ctycuShapeFilePatten = dataFolder + “\” + StateLayer + “\??” + “ctycu.shp”; 
 string ctycuIndexFilePatten = dataFolder + “\” + StateLayer + “\ctycu.midx”;//"\??" + StateLayer + “.idx”;//"\ctycu.idx"; 
 MultipleShapeFileFeatureLayer ctycuLayer = new MultipleShapeFileFeatureLayer(ctycuShapeFilePatten, ctycuIndexFilePatten); 
  
 You can see it need special file name format in same folder and special midx file. 
  
 I think you can check your data format of DD data and SM data, whether they are the same. 
  
 In fact in the latest code, I haven’t found MultipleShapeFileFeatureLayer both for DD data and SM data render logic. 
  
 I think both of them should be changed in new version. 
  
 Regards, 
  
 Don

Thanks Don. I was using the special wildcard naming convention, but it seems that it isn’t looking into the specific state folders. In your example, ctycuShapeFilePattern would be “us\ctycu??ctycu.shp”. But the individual state ctycu files in the World Map Data Kit live in state folders, such as us\ctycu\WA\wactycu.shp. It seems that MultipleShapeFileFeatureLayer isn’t looking in the subfolders. It works if all the ??ctycu.shp files are in the same folder.

Hi Paul, 
  
 I think it should work if all ??ctycu.shp files in same folder. 
  
 But you still need build special index file for them (.midx). 
  
 The API is MultipleShapeFileFeatureLayer.BuildIndex. 
  
 Regards, 
  
 Don

Do you know why this behavior was changed? This used to work with files in subfolders.

Paul, 
  
 Sorry I am not very sure what happened before for the folder format. 
  
 But I think that’s should because our WorldMapKit get version upgrade and some optimize. 
  
 If it’s hard to you handle your old data, I think you can contact your account rep, he could help you with the detail about upgrade your data. Orelse you need try to find the old render logic of WorldMapKit for your old data. 
  
 Regards, 
  
 Don