Make it safer to extend the Google Layer by not invoking Map.getLayersByClass. Also removed an unused variable. tschaub made one more change to check for other Google layers only if we have a cache already - otherwise the whole logic would not apply anyway. Thanks iacovlev_pavel for bringing this up on IRC. p+r=tschaub,me (closes #2793)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@10632 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2010-08-18 16:43:45 +00:00
parent 415fcbf9f9
commit 42fedc4d69

View File

@@ -181,22 +181,20 @@ OpenLayers.Layer.Google.v3 = {
* visible - {Boolean} Display the GMap elements.
*/
setGMapVisibility: function(visible) {
var type = this.type;
var layers = this.map.getLayersByClass("OpenLayers.Layer.Google");
var index = OpenLayers.Util.indexOf(layers, this);
var layer;
for (var i=layers.length-1; i>=0; --i) {
layer = layers[i];
if (layer.visibility === true && layer.inRange === true) {
type = layer.type;
visible = true;
break;
}
}
var cache = OpenLayers.Layer.Google.cache[this.map.id];
if (cache) {
var type = this.type;
var layers = this.map.layers;
var layer;
for (var i=layers.length-1; i>=0; --i) {
layer = layers[i];
if (layer instanceof OpenLayers.Layer.Google &&
layer.visibility === true && layer.inRange === true) {
type = layer.type;
visible = true;
break;
}
}
var container = this.mapObject.getDiv();
if (visible === true) {
this.mapObject.setMapTypeId(type);