Google maps 如何使用复选框打开和关闭谷歌地图图层?
我正在尝试使用复选框将可切换的流量、云和天气层添加到谷歌地图中。然而,当我尝试这样做时,所有的层都消失了,无论框是否被选中。我从未在Javascript中做过类似的事情,而且我对Javascript非常陌生,所以我不知道自己做错了什么。这是我的代码,任何帮助都会很好 Javascript:Google maps 如何使用复选框打开和关闭谷歌地图图层?,google-maps,google-maps-api-3,checkbox,Google Maps,Google Maps Api 3,Checkbox,我正在尝试使用复选框将可切换的流量、云和天气层添加到谷歌地图中。然而,当我尝试这样做时,所有的层都消失了,无论框是否被选中。我从未在Javascript中做过类似的事情,而且我对Javascript非常陌生,所以我不知道自己做错了什么。这是我的代码,任何帮助都会很好 Javascript: function check() { var weatherLayer = new google.maps.weather.WeatherLayer({
function check()
{
var weatherLayer = new google.maps.weather.WeatherLayer({
temperatureUnits: google.maps.weather.TemperatureUnit.FAHRENHEIT
});
var trafficLayer = new google.maps.TrafficLayer();
var cloudLayer = new google.maps.weather.CloudLayer();
if(document.getElementById('weather').checked)
{weatherLayer.setMap(map);}
else if(!document.getElementById('weather').checked)
{weatherLayer.setMap(map);}
cloudLayer.setMap(map);
trafficLayer.setMap(map);
}
Html
天气
云
交通
function check()
{
if(document.getElementById('weather').checked)
{weatherLayer.setMap(map);}
else
{weatherLayer.setMap(null);}
if(document.getElementById('clouds').checked)
{cloudLayer.setMap(map);}
else
{cloudLayer.setMap(null);}
if(document.getElementById('traffic').checked)
{trafficLayer.setMap(map);}
else
{trafficLayer.setMap(null);}
}
你的else if应该读作weatherLayer.setMap(null)哦,是的,我更改了,但仍然不起作用谢谢!不过我对地图还是有一些问题。如果我在代码中将复选框设置为选中或未选中,它将正常运行,但当我在浏览器中点击复选框时,没有任何更改。你知道为什么会这样吗?谢谢看看我的,这是可行的(至少在Chrome中是这样)。这里有一个关于检查复选框变化的问题,我想我还记得看到云覆盖在某个缩放级别下不会显示吗?
function check()
{
if(document.getElementById('weather').checked)
{weatherLayer.setMap(map);}
else
{weatherLayer.setMap(null);}
if(document.getElementById('clouds').checked)
{cloudLayer.setMap(map);}
else
{cloudLayer.setMap(null);}
if(document.getElementById('traffic').checked)
{trafficLayer.setMap(map);}
else
{trafficLayer.setMap(null);}
}