ThinkGeo.com    |     Documentation    |     Premium Support

If TabFile Polygon crosses user drawn shape Error

Hi,


I have a Tab file that is ONE intricate polygon.


I am trying to see if a user drawn shape crosses the polygon with the following code:


If DataTabLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.NoColumns)(0).GetShape().Crosses(UserDrawnShape)  = False Then



Could it be that the polygon is too big ?


That line causes the below error.

 


GisSharpBlog.NetTopologySuite.Geometries.TopologyException was unhandled by user code

  Message=side location conflict [ (2068656.2199834, -4007556.71024315, NaN) ]

  Source=NetTopologySuite

  StackTrace:

       at GisSharpBlog.NetTopologySuite.GeometriesGraph.EdgeEndStar.PropagateSideLabels(Int32 geomIndex)

       at GisSharpBlog.NetTopologySuite.GeometriesGraph.EdgeEndStar.ComputeLabelling(GeometryGraph[] geom)

       at GisSharpBlog.NetTopologySuite.Operation.Relate.RelateComputer.LabelNodeEdges()

       at GisSharpBlog.NetTopologySuite.Operation.Relate.RelateComputer.ComputeIM()

       at GisSharpBlog.NetTopologySuite.Operation.Relate.RelateOp.get_IntersectionMatrix()

       at GisSharpBlog.NetTopologySuite.Operation.Relate.RelateOp.Relate(IGeometry a, IGeometry b)

       at GisSharpBlog.NetTopologySuite.Geometries.Geometry.Relate(IGeometry g)

       at GisSharpBlog.NetTopologySuite.Geometries.Geometry.Crosses(IGeometry g)

       at ThinkGeo.MapSuite.Core.BaseShape.CrossesCore(BaseShape targetShape)

       at ThinkGeo.MapSuite.Core.BaseShape.Crosses(BaseShape targetShape)

       at System.Web.UI.ImageClickEventHandler.Invoke(Object sender, ImageClickEventArgs e)

       at System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e)

       at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)

       at System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)

       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)

       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)

       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

  InnerException: 



Here are images showing the inner circles and outer cirlcles and verticals of the polygon. 
  
 screencast.com/t/WT6dOnk9ob 
  
 screencast.com/t/l8muRA6lwY 
  


Anyone ?

Gregory, 
  
 Usually, the Cross API should worked for all shapes, I think the error may cause by some particular case, so could you provide the polygon and draw shape to us that we can test it to figure out the really problem? We use wkt (en.wikipedia.org/wiki/Well-known_text) to represent any shape, so you can convert shape object to wkt string by calling GetWellKnownText() method of shape. 
  
 Thanks, 
 James 


Can i send this to you privately as i do not want it displayed here.

?

Gregory, 
  
 Yes, you can send it to forumsupport@thinkgeo.com and let him forward to James so that I can get it later. 
  
 Thanks, 
 James

I sent it right now.

Gregory, 
  
 I didn’t receive it, maybe that mailbox is not available now, could you contact support@thinkgeo.com and let him forward to me. 
  
 Thanks, 
 James

Done and they said they ahve forwarded it successfully… hope you got it.

Gregory,  
  
 I have test your data by following code, it seems it works fine, there is no exception thrown, could you verify it?  
 BaseShape shape = BaseShape.CreateShapeFromWellKnownData(tableCloudPolygon);  
 shape.Crosses(new PointShape(2068656.2199834, -4007556.71024315));  
  
 Thanks,  
 James