ThinkGeo.com    |     Documentation    |     Premium Support

MultiLineShape exception

    Hi Guys,


I have just downloaded 6.0.104 dlls and my application crash when trying to add a MultiLineShape to the InmemoryFeatureLayer. Have you changed anything on this?


 Regards,


Carlos 



In addition to the multilinestring, I’m getting a InvalidOperationException when trying to add the following LineString to the InMemoryFeatureLayer through a transaction:  
  
 {LINESTRING(-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65638888888889 40.5336111111111,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65583333333333 40.5327777777778,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5333333333333,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5325,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5327777777778,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5333333333333,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5327777777778,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5327777777778,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65583333333333 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556,-3.65611111111111 40.5330555555556)} 
  
  IsValid returns false but I don’t know why, previously it was no problem with it. 
  


And other issue is that .MakeValid returns a Feature with other ID. Is this the intended behavior?

Hi Carlos,
 
We integrated the CLR Types to our product, so the topology rules are more strict than before as default, in your case you can use the following code to get the reason:
 

            BaseShape.GeometryLibrary = GeometryLibrary.Managed;
            Feature feature = new Feature();
            BaseShape.GeometryLibrary = GeometryLibrary.Unmanaged;
            string invalidReason = feature.GetInvalidReason();

and the reason is, "Not valid because of two overlapping edges in curve (1)".
About the BaseShape.GeometryLibrary, it has 3 values:
1)  Unmanaged , using the new CLR Types for the topology rules.
2)  Managed, using the old NTS topology rules.
3)  Default, works like the Unmanaged.
 

For the issue MakeValid(), we have fixed this, please get 6.0.114.0 and have a try.


Hope it helps,


Edgar



What does "two overlapping edges in curve" mean?

I think that means the line overlaps itself, the new topology rules don’t allow a line self-intersected, self-overlapped. e.g. The “LINESTRING( 0 0, 10 0, 0 0)” will get the same exception.