4

我试图在我的页面上实现此代码(http://stackoverflow.com/questions/10318316/how-to-hide-or-display-a-google-maps-layer/),以放置天气/云/离开我的地图,但不知何故它干扰了我当前的代码。我已经尝试了上面链接中提供的两个选项,但也许我做错了什么,或者它干扰了我地图中已经存在的 Fusion Tables 选择?

有人可以帮我正确的代码片段吗?我的页面在这里http://www.strahlen.org/map/mapplusweather.htm。(取消)选择按钮已经在右下角。

提前致谢, 弗兰克

ps:虽然管理员删除了您的帖子,但感谢Alexander Farber您之前的帮助!

ps 2:我当然有天气层工作,请参阅http://www.strahlen.org/map/mapweather.htm,但我无法打开/关闭它

*最终编辑* 以防止链接腐烂:我现在在我的“生产版本”中使用了代码-> http://www.strahlen.org/map/

4

2 回答 2

5

我查看了您的网站,我相信您只需对现有代码进行一些基本更改。首先,在您的initialize()函数中添加两个新变量:

function initialize() {
    var tableId = 3167783;
    var cloudDisplayIsOn = false;
    var weatherDisplayIsOn = false;

然后,在您现有的 click侦听器代码中,进行以下更改:

google.maps.event.addDomListener(document.getElementById('cloud'),
    'click', function() {
        if ( cloudDisplayIsOn ) {
            cloudLayer.setMap( null );
            cloudDisplayIsOn = false;
        }
        else {              
            cloudLayer.setMap( map );
            cloudDisplayIsOn = true;
        }
    });

最后,在您现有的天气 click监听器代码中,进行非常相似的更改:

google.maps.event.addDomListener(document.getElementById('weather'),
    'click', function() {
        if ( weatherDisplayIsOn ) {
            weatherLayer.setMap( null );
            weatherDisplayIsOn = false;
        }
        else {
            weatherLayer.setMap( map );
            weatherDisplayIsOn = true;
        }
    });

现在您可能需要进行一些小调试,但我相信这将为您添加所需的显示开/关cloudLayer代码weatherLayer

于 2012-05-01T19:12:30.703 回答
0

我正在尝试执行类似的功能,但倾斜度不同。以下代码是我们地图服务器页面引用的 fusion_maps_v3.js 文件中当前使用的 geeToggleLayer 函数。我正在尝试消除复选框切换,以便有人只需单击图层标签即可切换可见性。

    function geeToggleLayer(e, checkBoxId, channel, glmId, layerName) {
      try {
        var cb = document.getElementById(checkBoxId);
        var id = glmId + '-' + channel;

        // toggle layer visibility via clicking checkbox
        try {
          if (cb.checked) {
            geeMap.showFusionLayer(id);
          } else {
            geeMap.hideFusionLayer(id);
          }
        } catch (err2) {
          alert('Failed attempt to enable/disable layer: ' +
                layerName + '\n' + id + '\n' + err2);
        }
      } catch (err) {
        alert('Failed attempt to get checkbox for layer: ' +
              layerName + '\n' + err);
      }
      cancelEvent(e);
    }
于 2014-08-28T19:17:01.667 回答