Google layer improvements for maps with allOverlays set to true. r=tschaub (closes #2758)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10550 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -181,11 +181,25 @@ 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 container = this.mapObject.getDiv();
|
||||
if (visible === true) {
|
||||
this.mapObject.setMapTypeId(this.type);
|
||||
this.mapObject.setMapTypeId(type);
|
||||
container.style.left = "";
|
||||
if (cache.termsOfUse && cache.termsOfUse.style) {
|
||||
cache.termsOfUse.style.left = "";
|
||||
@@ -194,21 +208,17 @@ OpenLayers.Layer.Google.v3 = {
|
||||
}
|
||||
cache.displayed = this.id;
|
||||
} else {
|
||||
if (cache.displayed === this.id) {
|
||||
delete cache.displayed;
|
||||
}
|
||||
if (!cache.displayed) {
|
||||
container.style.left = "-9999px";
|
||||
if (cache.termsOfUse && cache.termsOfUse.style) {
|
||||
cache.termsOfUse.style.display = "none";
|
||||
// move ToU far to the left in addition to setting
|
||||
// display to "none", because at the end of the GMap
|
||||
// load sequence, display: none will be unset and ToU
|
||||
// would be visible after loading a map with a google
|
||||
// layer that is initially hidden.
|
||||
cache.termsOfUse.style.left = "-9999px";
|
||||
cache.poweredBy.style.display = "none";
|
||||
}
|
||||
delete cache.displayed;
|
||||
container.style.left = "-9999px";
|
||||
if (cache.termsOfUse && cache.termsOfUse.style) {
|
||||
cache.termsOfUse.style.display = "none";
|
||||
// move ToU far to the left in addition to setting
|
||||
// display to "none", because at the end of the GMap
|
||||
// load sequence, display: none will be unset and ToU
|
||||
// would be visible after loading a map with a google
|
||||
// layer that is initially hidden.
|
||||
cache.termsOfUse.style.left = "-9999px";
|
||||
cache.poweredBy.style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user