ThinkGeo.com    |     Documentation    |     Premium Support

Error editing multipologon shape

I have a multipolygon on my map.  



{MULTIPOLYGON(((-9503592.34624741 4846233.18980831,-9502541.33714828 4846276.18563509,-9502536.5598342 4845659.91211788,-9502749.15031107 4845657.52346084,-9502751.53896811 4845757.84705666,-9502995.18198654 4845769.79034188,-9502990.40467246 4845636.02554745,-9503592.34624741 4845631.24823336,-9503592.34624741 4846233.18980831),(-9503291.66411877 4846019.40500292,-9503319.13367477 4845993.12977544,-9503309.5790466 4845969.24320501,-9503305.99606104 4845957.29991979,-9503286.88680469 4845948.93962014,-9503207.69664938 4845843.00885457,-9503100.20708243 4845911.08558031,-9503056.01692712 4846007.82619057,-9503070.34886939 4846087.84620153,-9503259.41724869 4846017.01634588,-9503272.55486243 4846026.57097405,-9503285.69247617 4846025.37664553,-9503291.66411877 4846019.40500292)))}



When I put the shape into the editoverlay layer and then attempt to remove some of the points (by double clicking on the vertex) on the inner ring (and still leaving at least 3 points for a valid polygon), most of the time I will get the following error:



+ $exception {System.NullReferenceException: Object reference not set to an instance of an object.
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateDragControlPointsCore(Feature feature)
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateDragControlPoints()
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateAllControlPoints()
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.EndEditingCore(PointShape targetPointShape)
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.EndEditing(PointShape targetPointShape)
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.RemoveVertex(PointShape targetPointShape, Double searchingTolerance)
   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.MouseDoubleClickCore(InteractionArguments interactionArguments)
   at ThinkGeo.MapSuite.WpfDesktopEdition.InteractiveOverlay.MouseDoubleClick(InteractionArguments interactionArguments)
   at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.7hY=(InteractionArguments 7xY=)
   at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.6xY=(Object 7BY=, MouseButtonEventArgs 7RY=)
   at ohM=.3Rg=.OnDoubleClick(Object sender, MouseButtonEventArgs e)
   at ohM=.3Rg=.Vhk=(Object Vxk=, MouseButtonEventArgs WBk=, Object WRk=)
   at ohM=.3Rg=.Whk=(Object Wxk=, EventArgs XBk=)
   at System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
 System.NullReferenceException}








Hi Scott, 
  
 As I remember, this issue have been fixed some days ago and I also didn’t recreate it in the latest version when I test the shape. 
 Would you please try the latest version? or Which version you are using? 
  
 Thanks, 
 Johnny