MapSuite Team,
I've been encountering DrawnExceptions from an InMemoryFeature Layer that is used to track vehicle GPS positions in real-time.
After continuously receiving these I zoomed-in and then received a .NET exception. At the zoomed-in level it was attempting to make MrSid rasters visible.
The following are the exceptions:
Unable to TrackingLayer.EditTools.CommitTransaction
Message=Cannot insert items into an STR packed R-tree after it has been built.
DrawnException
Message=Destination array was not long enough. Check destIndex and length, and the array's lower bounds.
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.NullReferenceException
Stack:
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.DrawException(ThinkGeo.MapSuite.Core.GeoCanvas, System.Exception)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.Draw(ThinkGeo.MapSuite.Core.GeoCanvas)
at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.OxU=(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
I had encountered the DrawnExceptions in the past and had that fixed, but now that I have enhanced my application to display MrSid's they have returned. It seems that there is some array within MapSuite that is not large enough.
I have 30 layers as part of the application plus the MrSid's. The application also takes in a constant GPS feed of 20+ GPS positions per second.
I am also burdened with attempting to figure out to make the map faster. Some times it can takes as much as 60 seconds to draw any given extent.
The application uses four LayerOverlays: 16 MrSid rasters are contained with one LayerOverlay, another LayerOverlay contains one shape file comprised of a 140MB shp file and a 240MB dbf file, another LayerOverlay contains 25 shape files, and then two LayerOverlays for InMemoryFeature Layer.
Any thoughts or assistance on these issues would be appreciated. I have been struggling with performance for quite some time and have been unable to get to the point where I need to be.
Regards,
Dennis