[OpenLayers-Dev] trunk google-v3 problem resizing and switching layers & fix

Philip Collins Philip.Collins at unh.edu
Mon Jul 11 15:39:19 EDT 2011


Go to:
http://openlayers.org/dev/examples/google-v3.html

and make your browser window really skinny. Then try to switch the base
layer. Nothing happens. Then try to make your browser a normal size and
switch layers. Still nothing happens.

The problem is that the current code is relying upon google sending a
tiles loaded event that never occurs. Here's some code to fix that.

// patch openlayers 2.11RC to fix problem when switching to a google layer
from a non google layer after resizing the map
OpenLayers.Layer.Google.v3.onMapResize = function() {
  var cache = OpenLayers.Layer.Google.cache[this.map.id];
  cache.resized = true;
};
OpenLayers.Layer.Google.v3.setGMapVisibility_old =
OpenLayers.Layer.Google.v3.setGMapVisibility;
OpenLayers.Layer.Google.v3.setGMapVisibility = function(visible) {
  var cache = OpenLayers.Layer.Google.cache[this.map.id];
  if (visible && cache && cache.resized) {
    google.maps.event.trigger(this.mapObject, "resize");
    delete cache.resized;
  }
  OpenLayers.Layer.Google.v3.setGMapVisibility_old.apply(this,arguments);
};

Phil

-- 
Philip.Collins at unh.edu
University of New Hampshire
Research Computing Center



More information about the Dev mailing list