ThinkGeo.com    |     Documentation    |     Premium Support

Client side javascript

I am trying to use javascript as much as possible in order to speed things up.  I want to display a loading div while the extent is changing in the map control.  I found OnClientExtentChanged and can use it to display the loading div, but I need an event that I can use to hde the loading div when the map control is finished drawing the new extent.


Is there a client side event that I can use that will fire when the map is finished drwing the new extent?


Charles



Hello Charles,


Yes, in openlayer, you can use "loadstart, loadend, loadcancel" event to raise with map render.


loadstart: Triggered when layer loading starts.


loadend:  Triggered when layer loading ends.


loadcancel:  Triggered when layer loading is canceled.



 map.getLayer("MyDataOverlay").events.register('loadstart', this, function () {
             alert("loadstart");
        });
        map.getLayer("MyDataOverlay").events.register('loadend', this, function () {
             alert("loadend");
        });
        map.getLayer("MyDataOverlay").events.register('loadcancel', this, function () {
             alert("loadcancel");
        });

I hope this can help, and feel free to let us know your question.


Regards,


Gary



I have found this usable but still have a few questions. 
  
 I notices that map.getlayer(OverlayName) throws an error when OverlayName is AdornmentOverlay, EditOverlay, HighlightOverlay, or MarkerOverlay.  BackgroundOverlay, DynamicOverlay, and StaticOverlay always exist in my project. 
  
 Do the BackgroundOverlay, DynamicOverlay and StaticOverlay always exist? 
  
 How can I determine in javascript if an overlay exists? 
  
 Charles

Hello Charles,


You can use



var a = map.getLayer(...)
if(a){}

to determine if an overlay exist, and BackgroundOverlay, DynamicOverlay and StaticOverlay these three overlays are initial as default, so they always exist.


Regards,


Gary



Works great Thanks

Hello Charles, 
  
 You are welcome, please feel free to let us know your questions. 
  
 Regards, 
  
 Gary