ThinkGeo.com    |     Documentation    |     Premium Support

GdalRasterLayer throws exception

What does the following exception mean when I attempt to refresh the map after loading a GdalRasterLayer with World.tif sample data?


   at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()

   at System.ComponentModel.RunWorkerCompletedEventArgs.get_Result()

   at ThinkGeo.MapSuite.WpfDesktopEdition.Tile.x72e495c788ab064e(Object xe0292b9ed559da7d, RunWorkerCompletedEventArgs xfbf34718e704c6bc)

   at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)

   at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)

   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, 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)

   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, Boolean isSingleParameter)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

   at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)

   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter)

   at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg)

   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 raster.App.Main() in C:\Documents and Settings\nji\My Documents\Downloads\raster\raster\obj\Debug\App.g.cs:line 0

   at System.AppDomain._nExecuteAssembly(Assembly 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)

   at System.Threading.ThreadHelper.ThreadStart()


 


I ended up using GeoTiffRasterLayer for this sample.  What layer do I use for other popular formats such as PNG? 


TIA,


Klaus



OK, found GdiPLus and all other raster layers.  This is good for now.  It will still be nice to know what is causing this exception with Gdal.



Hi Klaus, 
  
 I’m not sure why this causes, because we are using FDO for adding these data. Technically, it supports this based on the FDO documentation; so there might be some issues to add some specific tiff data with this layer. We also recommend to use the specific layers to the specific data as priority selection; such as using the GeoTiffRasterLayer here. 
  
 We have some integrated sample using Fdo that notices to copy MapSuiteFdoExtensionx86 folder to system32 folder manually, I’m not sure if you have done this. Please have a try, if the issue still exists, please send the data to us so that we can check if it’s our bug or the 3rd part dll’s issue. 
  
 Thanks, 
 Howard

Howard, that was it.  I did not copy MapSuiteFdoExtensionx86 to System32.  Thanks.  Now I am spoiled with options.


So to load a .jpg, .bmp and .png, it is better to use GdiPlus or GdalRaster?


Thanks again.


 



Hi,  
 In addition as you know FdoExtension does not support X64 windows, do you have any idea about the time they will release a X64 compatible version? 
  
 Many thanks

Hi Klaus, 
  
 Great, using GdiPlusRasterLayer is better than using GdalRasterLayer. Because it’s stable recently.  
  
 Also, Ben, we have no idea when they will release the X64 compatible version, we just compile the application to X86 platform to workaround this issue in some of our projects. Sorry for the inconvenience. We’ll let you know when we have an update. 
  
 Thanks, 
 Howard

Hi Haward, 
  
 you said:  
 we just compile the application to X86 platform to workaround this issue in some of our projects  
  
 would you please describe this more?

Hi Ben, 



Our colleague from the Core team will talk about the FDO and x64 issues in the following post: 

 gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/39/aft/8338/afv/topic/Default.aspx 



Please refer to his reply and let us know if you have any other questions. 



Regards, 

Tsui



Cool, 
 thanks

Glad to be of service. 
 Please let us know if you have any other questions.  
  
 Regards,  
 Tsui