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:
ahocevar
2010-07-29 07:23:02 +00:00
parent ca27481c66
commit a5f2ddcfa1
4 changed files with 118 additions and 17 deletions

View File

@@ -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";
}
}
}