Foros del Web » Programando para Internet » Javascript »

Google maps sale en gris

Estas en el tema de Google maps sale en gris en el foro de Javascript en Foros del Web. Tengo un problema con el google maps, el mapa esta en un toggle y no se si esto tenga algo que ver, estuve buscando en ...
  #1 (permalink)  
Antiguo 13/06/2016, 20:54
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Google maps sale en gris

Tengo un problema con el google maps, el mapa esta en un toggle y no se si esto tenga algo que ver, estuve buscando en internet y dice que sí, pero no veo manera de solucionarlo ya que el mapa sale el fondo totalmente en gris es cuando la página ha cargado por completo, ya que si abro el div que contiene el mapa antes de que haya cargado por completo el mapa si se ve bien y carga, y si lo abro antes se ve en gris, el toggle esta así:

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.             $(document).ready(function(){
  3.                 $(".contenido").hide();
  4.                 $("#planes").change(function(){
  5.                 $(".contenido").hide();
  6.                      $("#div_" + $(this).val()).toggle("slow", function(){
  7.                       google.maps.event.trigger(map, 'resize').show();
  8.                   });
  9.                 });
  10.             });
  11.         </script>

Todo funciona bien, excepto lo del mapa, acá está el código que tengo en mapa.js:

Código Javascript:
Ver original
  1. function localizame() {
  2.             if (navigator.geolocation) { /* Si el navegador tiene geolocalizacion */
  3.                 navigator.geolocation.getCurrentPosition(coordenadas, errores);
  4.             }else{
  5.                 alert('Oops! Tu navegador no soporta geolocalización. Bájate Chrome, que es gratis!');
  6.             }
  7.         }
  8.        
  9.         function coordenadas(position) {
  10.             latitud = position.coords.latitude; /*Guardamos nuestra latitud*/
  11.             longitud = position.coords.longitude; /*Guardamos nuestra longitud*/
  12.         }
  13. function getCoords(marker){
  14.     document.getElementById("latitud").value=''+marker.getPosition().lat();
  15.       document.getElementById("longitud").value=''+marker.getPosition().lng();
  16. }
  17. function initialize() {
  18.     var myLatlng = new google.maps.LatLng(9.314299432752295,-70.60566794257812);
  19.     var myOptions = {
  20.         zoom: 17,
  21.         center: myLatlng,
  22.         mapTypeId: google.maps.MapTypeId.ROADMAP,
  23.     }
  24.     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  25.      
  26.    marker = new google.maps.Marker({
  27.           position: myLatlng,
  28.           draggable: true,
  29.           title:"Descubrelo"
  30.     });
  31.     google.maps.event.addListener(marker, "dragend", function() {
  32.                     getCoords(marker);
  33.     });
  34.      
  35.       marker.setMap(map);
  36.     getCoords(marker);
  37.      
  38.    
  39.   }
Saludos
  #2 (permalink)  
Antiguo 14/06/2016, 00:54
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 10
Respuesta: Google maps sale en gris

Buenas,

Estás declarando la variable "map" como local de la función "initialize" pero luego accedes a ella para lanzar el trigger resize como si fuera global. ¿O es que has asignado esta variable en otra parte de código que no has puesto?

Aparte de eso, creo que el ".show()" del trigger no es necesario. Prueba por ahí.

Saludos!
  #3 (permalink)  
Antiguo 14/06/2016, 18:10
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Google maps sale en gris

Cita:
Iniciado por leugimsiul Ver Mensaje
Buenas,

Estás declarando la variable "map" como local de la función "initialize" pero luego accedes a ella para lanzar el trigger resize como si fuera global. ¿O es que has asignado esta variable en otra parte de código que no has puesto?

Aparte de eso, creo que el ".show()" del trigger no es necesario. Prueba por ahí.

Saludos!
Ready bro, gracias. Para el que necesite después, fue porque el mapa estaba en un div escondido, en el trigger e hice lo siguiente:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.                 $(".contenido").hide();
  3.                 $("#planes").change(function(){
  4.                 $(".contenido").hide();
  5.                      $("#div_" + $(this).val()).toggle("slow", function(){
  6.                       google.maps.event.trigger(initialize(), 'resize');
  7.                   });
  8.                 });
  9.             });

Puse el initialize de esa manera para que cargue bien, saludos.

Etiquetas: funcion, google, js, maps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:50.