ThinkGeo.com    |     Documentation    |     Premium Support

Cast LineShape to MultilineShape

Hi guys,


I keep getting cast exceptions when I try to cast a lineshape feature to a multilineshape. I've tried several ways including:


1. MultilineShape multilineShape = (MultilineShape)feature.GetShape();


2. MultilineShape multilineShape = new MultilineShape(feature.GetWellKnownBinary());


3. MultilineShape multilineShape = (MultilineShape)MultilineShape.CreateShapeFromWellKnownData(feature.GetWellKnownBinary());


4. Tried with the well known text string as well.


But the only thing that works is:


List<LineShape> lines = new List<LineShape>();


lines.Add((LineShape)feature.GetShape());


MultilineShape multilineShape = new MultilineShape(lines);


Why can't I cast it directly? I got example 1 above from a working sample in the Desktop Edition (Displaying One Way Streets).


Thanks,


Nirish


 



 


Nirsh,
 
I’m sure code above will throw exception if the return value of feature.GetShape() is LineShape type. The code in the DesktopEditon(Displaying one way streets) works normally is just because we are sure all the return value of feature.GetShape() is MultilineShape type, so we used like that for short, it also will throw exception if one of the return values is LineShape. Hope that my explanation can give you a help.
 
 
Any question please let me know, thank.
 
Johnny

Thanks Johnny. I’ll just stick with the method that works: 
  
 List<LineShape> lines = new List<LineShape>(); 
 lines.Add((LineShape)featureShape); 
 MultilineShape multilineShape = new MultilineShape(lines);

Nirish, 
  
 Thank you for your feedback. Please feel free to ask more questions. 
  
 Thanks, 
 Khalil