On Wed, Apr 18, 2012 at 3:23 AM, Tobias Reinicke <[email protected]
I might have missed where this has been written, but is there not a
"loadend" event for the entire map (rather than on a layer basis?). If
not, what is the best way to check that all layers on a map have
finished loading? I know there was some work done on the Loading Panel
add-in, but as far as I can tell this iterates through all layers and
registers loadend events on them.

That sounds about right. The Map itself is already loaded, it's "all layers" that you're interested in knowing, so you'll have to approach from that angle. I'd go with a counter and a self-canceling "layer finished loading" handler. It would look kinda like this:


var LAYERS_LOADING = 0;

layer.events.register('loadstart', layer, function () {
   LAYERS_LOADING++;
   document.getElementById('loading').style.display = 'block';
});

var cancelme = layer.events.register('loadend', layer, function () {
   LAYERS_LOADING--;

   if (LAYERS_LOADING == 0) {
      document.getElementById('loading').style.display = 'none';
      layer.events.unregister(cancelme);
   }

});



You should be able to stick that whole thing inside your map startup function, won't even pollute your global namespace.

In fact, if you put that whole shebang inside a nice OpenLayers.Control wrapper, and put that stuff inside the "if" inside a function instead, you'd probably have a reusable Control. Or maybe this 10-line block minus the "if" stuff would be feasible to add to OpenLayers.Map so it really does raise a map.doneloading event ...

--
Greg Allensworth, Web GIS Developer
BS  A+  Network+  Security+  Linux+  Server+
GreenInfo Network - Information and Mapping in the Public Interest
564 Market Street, Suite 510  San Francisco CA 94104
PH: 415-979-0343 x302  FX: 415-979-0371    email: [email protected]
Web: www.GreenInfo.org     www.MapsPortal.org

Subscribe to MapLines, our e-newsletter, at www.GreenInfo.org
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users

Reply via email to