varios puntos marcar marcadores google agregar google-maps google-maps-api-3 weather weather-api google-weather-api

google-maps - puntos - marker set position



¿Cómo ocultar o mostrar una capa de Google Maps? (1)

Puede ocultar / mostrar la capa con el método setMap :

if ($(this).is('':checked'')) weatherLayer.setMap(map); // show else weatherLayer.setMap(null); // hide

Vea el ejemplo de trabajo: http://jsfiddle.net/EeVUr/2/ (eliminó su segunda casilla de verificación, ya que ahora solo tiene una capa. Pero puede crear fácilmente dos capas diferentes y cambiarlas).

He preparado un caso de prueba simplificado y una captura de pantalla.

Creo que me falta un poquito, solo unas pocas líneas de código.

Tengo 2 superposiciones (el clima y las nubes ) en mi JavaScript Google Map y me gustaría esconderlas o mostrarlas cuando se hace clic en una casilla de verificación correspondiente:

Aquí está el caso de prueba, simplemente péguelo en un archivo .html y se ejecutará:

<!DOCTYPE HTML> <html> <head> <style type="text/css"> h1,p { text-align: center; } #map { width: 700px; height: 400px; margin-left: auto; margin-right: auto; background-color: #CCCCFF; } </style> <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&language=de&libraries=weather"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> $(function() { findCity(''Berlin''); $(''#weather_box,#clouds_box'').click(function(){ alert(''How to hide/show layers? Checked: '' + $(this).is('':checked'')); }); }); function createMap(center) { var opts = { zoom: 6, center: center, mapTypeId: google.maps.MapTypeId.ROADMAP }; return new google.maps.Map(document.getElementById(''map''), opts); } function findCity(city) { var gc = new google.maps.Geocoder(); gc.geocode({address: city}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var pos = results[0].geometry.location; var map = createMap(pos); var marker = new google.maps.Marker({ map: map, title: city, position: pos, animation: google.maps.Animation.DROP }); var weatherLayer = new google.maps.weather.WeatherLayer({ temperatureUnits: google.maps.weather.TemperatureUnit.CELSIUS }); weatherLayer.setMap(map); //var cloudLayer = new google.maps.weather.CloudLayer(); //cloudLayer.setMap(map); } }); } </script> </head> <body> <h1>Berlin</h1> <p>Show: <label><input type="checkbox" id="weather_box" checked>weather</label> <label><input type="checkbox" id="clouds_box">clouds</label> </p> <div id="map"></div> </body> </html>

ACTUALIZACIÓN: Gracias, aquí una versión de trabajo para todos

<!DOCTYPE HTML> <html> <head> <style type="text/css"> h1,p { text-align: center; } #map { width: 700px; height: 400px; margin-left: auto; margin-right: auto; background-color: #CCCCFF; } </style> <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&language=de&libraries=weather"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> var map; var WeatherLayer; var CloudsLayer; $(function() { findCity(''Berlin''); }); function createMap(center) { var opts = { zoom: 6, center: center, mapTypeId: google.maps.MapTypeId.ROADMAP }; return new google.maps.Map(document.getElementById(''map''), opts); } function findCity(city) { var gc = new google.maps.Geocoder(); gc.geocode({address: city}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var pos = results[0].geometry.location; map = createMap(pos); var marker = new google.maps.Marker({ map: map, title: city, position: pos, animation: google.maps.Animation.DROP }); weatherLayer = new google.maps.weather.WeatherLayer({ temperatureUnits: google.maps.weather.TemperatureUnit.CELSIUS }); weatherLayer.setMap(map); cloudsLayer = new google.maps.weather.CloudLayer(); //cloudsLayer.setMap(map); $(''#weather_box'').click(function(){ weatherLayer.setMap($(this).is('':checked'') ? map : null); }); $(''#clouds_box'').click(function(){ cloudsLayer.setMap($(this).is('':checked'') ? map : null); }); $(''#weather_box,#clouds_box'').removeAttr(''disabled''); } }); } </script> </head> <body> <h1>Berlin</h1> <p>Show: <label><input type="checkbox" id="weather_box" disabled="true" checked>weather</label> <label><input type="checkbox" id="clouds_box" disabled="true">clouds</label> </p> <div id="map"></div> </body> </html>