ThinkGeo.com    |     Documentation    |     Premium Support

GetBoundingBox error

I have a query for an MsSql2008FeatureLayer that returns a single point feature.  A single point feature doesn't really have a valid bounding box and I get an error if I try to use the GetBoundingBox method for the layer.  I have checked and the point location is valid.  The error is as follows:




InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.]
   ThinkGeo.MapSuite.Core.MsSql2008FeatureSource.GetBoundingBoxCore() +242


The problem is that the HasBoundingBox method returns true for the layer.  How can I test to see if there is a valid bounding box prior to running the GetBoundingBox method?



Hi Charles,


This is a known issue. We have added it to our work list. Following is a workaround for you, please have a try.


 


int count = sql2008Layer.FeatureSource.GetCount();
            RectangleShape boundingBox;
            if (count == 1)
            {
                 boundingBox = sql2008Layer.FeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns)[0].GetBoundingBox();
            }
            else
            {
                 boundingBox = sql2008Layer.GetBoundingBox();
            }


Any more questions just let us know.


Thanks,


Johnny


 



Is the same true of the Feature object or is the problem specific to the MsSql2008FeatureLayer (or the FeatureLayer in general)?  Do I need a work around for the Feature.GetBoundingBox()?


Charles



Charles,


Thanks for your post.
 
This issue only exists in the MsSql2008FeatureLayer, it is expected to work fine when you use the ShapeFileFeatureLayer or feature object. So just give workaround to the MsSql2008FeatureLayer.
 
Any more questions just feel free to let me know.
 
Thanks.
 
Yale

Charles, 
  
 We have fixed this problem by updating our MsSql2008FeatureLayer, please get the lastest version at custom portal and try it again. 
  
 Please let me know if you have any questions. 
  
 Thanks 
 James