ThinkGeo.com    |     Documentation    |     Premium Support

Exception with OpenStreetMap overlay

 Hi,


I have an exception when I zoom in with an OpenStreetMap overlay with multitile mode and large window width.


I use the build 5.5.122.0. I've joined an example.


Thanks,


P.OM


 


Here's the stack trace:



System.ArgumentException was unhandled


  Message=Parameter is not valid.


  Source=WpfDesktopEdition


  StackTrace:


       at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.<>c__DisplayClass2.<DrawException>b__0()


       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.runTryCode(Object userData)


       at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)


       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)


       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)


       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.InvokeImpl(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()


       at ProjBug.App.Main() in D:\divers\thinkgeo\bugs\OpenStreetMap\obj\x86\Debug\App.g.cs:line 0


       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)


       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)


       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()


       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)


       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)


       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)


       at System.Threading.ThreadHelper.ThreadStart()


  InnerException: 


 



 Sorry, here's the example :)



Puthirak,


  Thank you for your sample. I clearly identified the problem and I will pass that on to the Development team. In the meantime, I suggest you set some extent to your map for the beginning as you can see in the code below. By setting some reasonable extent, the error does not happen until you zoom out far out. Thank you.


 



private void wpfMap_Loaded(object sender, RoutedEventArgs e)
{
wpfMap.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);
wpfMap.MapUnit = GeographyUnit.Meter;

OpenStreetMapOverlay osmOverlay = null;

osmOverlay = new OpenStreetMapOverlay();

osmOverlay.IsVisible = true;

wpfMap.Overlays.Add("Open Street Map", osmOverlay);

    wpfMap.CurrentExtent = new RectangleShape(-14136706, 6440000, -5649000, 952000);
}


 Val,


Thank you for your quick answer. I just hope that it will be corrected for the RTM as it's clearly a regression from the 5.5 version.


Regards,


P.OM



Puthirak,


 The issue has been passed to the Development team through our internal tracking system. I apologize for the inconvenience. We will work on fixing the problem as soon as tomorrow. In the meantime, I hope that the temporary partial solution I recommended you at least gets you going in your development. Thank you.



Puthirak,


 I inform you that we did the fix on both the Dev and Bug branches. Please, go to the Customer Portal and get the version 5.5.0.129 or later to have the fix. Thank you.



 Val,


Thank you for your responsiveness.


I've tried the production build and it fix the problem but I cannot use it because it doesn't contains the Custom URIs for OpenStreetMap.


The only "daily development build" version accessible to me is the build 5.5.108.0. And it doesn't contains the fix.


 


Thank you,


P.OM


 



Puthirak,


  I took your sample app OpenStreetMap6 and change the references to the version 5.5.0.129 and it just worked without any problem. .Can you tell me more about that Custom URIs for OpenStreetMap so that I can pass on the proper and precise info to the Development team? Thank you.



 Val,


I'm surprised that you didn't remember this discussion :)


gis.thinkgeo.com/Support/Dis...fault.aspx


I use this collection OpenStreetMapOverlay::CustomServerUris.


Regards,


P.OM



Puthirak,


  I apologize for the delay. We have been swamped in support lately. The problem has been identified and an internal ticket has been created for the Development team to work on. We will let you know when the fix is available. Thank you.



 Ok. Thanks.



 


Hi Puthirak,
We just tried the attached sample you provided with latest code, and used the CustomUri as MapQuest Open layer otile2.mqcdn.com/tiles/1.0.0/osm/, but seems that all works fine now, can you get the latest version 5.5.152.0 or higher and have a try?
 
Best Regards!
Johnny

 Hi Johnny,


 
The only builds that I have access to are:
 
- 5.5.149.0 : OpenStreetMapOverlay::CustomServerUris exist.
- 5.5.0.152 : OpenStreetMapOverlay::CustomServerUris does not exist.
 
I can't find a build 5.5.152.0 .
 
Regards,
P.OM
Reportive
 

Hi Puthirak, 
  
 Usually, we just add the enhancements to the Development branch, that’s why the new API doesn’t exist in  5.5.0.152.  
  
 All the packages is built automatically, maybe the latest one is still in building, please wait for several hours and then check it. 
  
 Any question please let us know. 
  
 Best Regards! 
 Johnny