ThinkGeo.com    |     Documentation    |     Premium Support

EditInteractiveOverlay Exception

Hello,



I have come across an exception that seems like it is being thrown from the ThinkGeo Code.  My application allows the user to edit polygon shapes and when I repeatedly tap on a vertex I occasionally get the following exception:







************** Exception Text **************

System.NullReferenceException: Object reference not set to an instance of an object.

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.CalculateDragControlPointsCore(Feature feature)

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.CalculateDragControlPoints()

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.CalculateAllControlPoints()

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.EndEditingCore(PointShape targetPointShape)

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.EndEditing(PointShape targetPointShape)

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.RemoveVertex(PointShape targetPointShape, Double searchingTolerance)

   at ThinkGeo.MapSuite.DesktopEdition.EditInteractiveOverlay.MouseDoubleClickCore(InteractionArguments interactionArguments)

   at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.rhU=(InteractionArguments rxU=)

   at ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer.UxU=(Object VBU=, EventArgs VRU=)

   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)

   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



My application will be run on a computer with a touchscreen and a
stylus.  It happens more often with the stylus, but I can also get the
exception when using a mouse.  I have gone back to the Map Suite Desktop Full Edition 7.0 Samples and using the VB solution, VB VS2012 Winforms.sln, I ran the Think Geo sample Track and Edit Shapes.  It occasionally throws the same exception when editing a polygon and repeatedly tapping on a vertex.  Can you please see if you repeat this and give me a work around?  If you cannot get the exception at first, please vary the tapping speed.  I need to prevent my application from crashing when this happens.  Thanks in advance for your help.



Regards,

Eileen






Hi Eileen, 
  
 Sorry today I cannot find a touch device for test,but I tried to test in PC but haven’t reproduced that. 
  
 Could you please upload a very simple sample for reproduced that? 
  
 And we wish to know the detail version of your ThinkGeo dlls. 
  
 Regards, 
  
 Don

Hi Don,



I am using Ver. 7.0.0.0 and you can reproduce the exception by using the samples that install with the ThinkGeo Desktop Edition.  Run the Track and Edit Shapes sample, draw a polygon and select the Edit mode.  Now left click on a vertex a number of times in succession.  The speed of the clicks matters.  Try to tap faster than a double click and usually by the fourth tap, the exception will occur.  



Please let me know if you need any other details.  I hope you can reproduce the problem - that’s usually half the battle.



Regards,

Eileen


Hi Eileen, 



Thanks for the detail and I guess I have encountered such issue if what I understand is correct. In general, if we double click a vertex under the edit mode to draw a polygon, means we want to delete the vertex. However, there was a bug that if the left vertex count is less than 3, then the Null-exception would be thrown out like yours. So, I am guessing you are encountering the same case. 



If yes, it would be easy to fix just to upgrade the version, as I didn’t remember which version we fixed in, you can just get the latest version(7.0.0.234 or 7.0.234.0) should be fine. 



Hope it helps and if it doesn’t work, please feel free to let us know. 

Regards, 

Troy

Hi Troy,



Upgrading to Version 7.0.0.234 worked.  The exception is no longer thrown.  Thanks for the help!



Regards,

Eileen


Hi Eileen, 
  
 Good to hear it works. 
 Any more queries, please feel free to let us know. 
  
 Thanks, 
 Troy