ThinkGeo.com    |     Blog    |     Wiki    |     Support

Issue with MultipleShapeFileFeatureLayer

Hi All,


I am currently running version 6.0.0.151 and am having a devil of a time with the MultipleShapeFileFeatureLayer layer. Any time I try to draw one (I'm using MapEngine.DrawStaticLayers) I receive an 'index out of bounds' exception, whether there's only one file included, or a hundred. I've tried attaching to the DrawingException and DrawnException events, but they don't seem to be being hit. There is nothing fancy in the styling or the way I'm using the layer, either. I can switch it to a ShapeFileFeatureLayer (with only one file, obviously) and everything seems to work fine. Might you be able to give me a bit of insight as to where I'm going wrong? Thanks again!


-Dustin



Also, when I switch back to version 5.0.0.55, this worked as expected, though it was significantly slower than v6, so I’d really rather not use it if I don’t have to.

 



Hi Dustin,


We wrote a sample to recreate your scenario but there is no exception, attached is the sample, please get it and have a try.


Regards,


Edgar



Post10778.zip (11 KB)

Hi Edgar,

Your sample did indeed work, and it led me to figure out what is going on. If you create the MultipleShapeFileFeatureLayer first and add individual shapefile paths to it, then perform the DrawStaticLayers command, that's when the error is thrown. If you group the shapefile paths in a collection and instantiate it with that collection (as you did in the sample) everything seems to work fine. 

So, replacing this:

           [code]Collection<string> paths = new Collection<string>() { 

@"..\..\..\SampleData\Data\USStates.shp",</string></string>


<string><string>@"..\..\..\SampleData\Data\MajorCities.shp"

};

MultipleShapeFileFeatureLayer mFeatureLayer = new MultipleShapeFileFeatureLayer(paths);



with this



           [code]MultipleShapeFileFeatureLayer mFeatureLayer = new MultipleShapeFileFeatureLayer();

  mFeatureLayer.ShapeFiles.Add(@"..\..\..\SampleData\Data\USStates.shp");

  mFeatureLayer.ShapeFiles.Add(@"..\..\..\SampleData\Data\MajorCities.shp");



should break it (unless that's intended behavior, but that seems strange.) Knowing that, I guess I can proceed, though, so thank you very much for your help!</string></string>


-Dustin



Dustin, 
  
 This is a bug, and we’ve fixed it, please get 6.0.169.0 or 6.0.0.169 and have a try. 
  
 Regards, 
 Edgar