ThinkGeo.com    |     Documentation    |     Premium Support

Safest time to refresh overlay

 Guys, why does the following code throw a NullReferencetException and is there a condition I can check on the overlay before calling its Refresh() method to ensure I do not get this?  Assume I do not have access to the map object where Overlay.Refresh() is being called, so I cannot tell if this overlay has already been added to the map or not.  Thanks.


 


 


 



wpfMap1.Overlays.Add(overlay);                            
            overlay.Refresh();          // NullReferenceException thrown here                      
            wpfMap1.Refresh(overlay);

 



TIA.

Hi Klaus, 
  
 When an overlay draws itself, it uses the MapArguments which include width, height and so on. But its MapArguments property is not initialized until the map refresh for the first time. This is why the code you posted throws null reference exception. 
  
 To avoid this, just check if the Overlay.MapArguments property is null before calling Overlay.Refresh method. 
  
 Regards, 
 Tsui

 Thanks Tsui.



Hi Klaus, 
  
 You are welcome.  
 Please let us know if you have any other questions. 
  
 Regards, 
 Tsui

Hi Cui, 
 I’m getting same error. 
 I checked Overlay.MapArguments and it is not null. And map.Refresh() is called prior to calling it. 
 But I’m getting nullreference exception error  on overlay.Refresh(); 
  
 What can be the reason?

I fixed problem. 
 In case someone requires, I was drawing an image at that layer and path of image is changed by someone else and after fixing image path problem resolved.  


Hello ABDULKADIR, 
  
 Thanks for share your experience, any more questions feel free to let us know. 
  
 Regards, 
  
 Gary