ThinkGeo.com    |     Documentation    |     Premium Support

WmsOverlay force refresh

Hello all,


I'm wondering if there is a way to force a WmsOverlay to pull all of it's tiles again. I have a weather layer on my WMS and it refreshes every five minutes, so I have a time fire every five minutes that is supposed to get the newest version, though I have yet to figure out how. I have tried to create a new WmsOverlay with the same properties and replace the old overlay, but assigning to Map1.Overlays["Weather"] just throws a null object error, for some reason. The code used to make the Overlay is exactly the same as when it's first created, so it shouldn't have anything null the second time through. I have also tried removing the old overlay and adding a new one, but the only thing that seems to happen is the old one gets removed. WmsOverlay.Refresh() and WmsOverlay.Initialize() don't do it either. Is there anything else I might be able to try? Thanks for your help!


-Dustin



Hello,


So it appears that if I remove the overlay, and re-add it with the same parameters, followed by a .Refresh on the overlay, it pulls the new tiles. This works, but is there a simpler way to do this, with say a built in funciton? Thanks again!


-Dustin



Hi Dustin, 
  
 For your problem, you can try like this: 
  
 1. Add a parameter to WMSOverlay in background code. For example wmsOverlay.Parameters.Add("stamp", DateTime.Now.Ticks.ToString()); 
 2. Each 5 mins, reset the value of "stamp" like:  
 overlay.Parameters["stamp"] = DateTime.Now.Ticks; 
 overlay.Refresh(); 
  
 I think this should works for you. 
  
 Regards, 
  
 Don

Thank you Don,


That's much simpler. I appreciate the help!


-Dustin



Dustin, 
  
 You’re welcome. 
  
 Please let we know if you have any question. 
  
 Regrads, 
  
 Don