javascript - read - GoogleMap offsetWidth problem
uncaught in promise google maps (6)
Tengo un problema con la visualización de GoogleMap.
Aquí está el código fuente del sitio web: http://pastebin.com/LjhVbEF7
Cuando intento ejecutar este sitio web, no se muestra el mapa. La consola de Firebug dice Uncaught TypeError: Cannot read property ''offsetWidth'' of null
¿Tienes idea de qué estoy haciendo mal? Sé que hay muchos ejemplos de trabajo en la red, pero este código es generado por un script especial y no puedo interferir mucho. Tal vez me olvidé de establecer algunas variables?
gracias Mike
=================
EDITAR: este código funciona solo cuando pondré JS en la definición de función y lo llamaré en body onload param. ¿Tiene alguna idea de cómo puedo hacer que funcione sin usar dicha función y onload param?
¿Está posiblemente trabajando en AngularJS? Yo estaba, y este problema persistió más allá de todas las soluciones anteriores. La razón fue que el parcial donde localicé mi mapa div no se estaba completando a tiempo, por lo tanto, el div era nulo, por lo tanto, el error que recibió.
Vea la forma Angular de llamar a GoogleMaps aquí:
Esto se debe a que su script se ejecuta antes de cargar el elemento DOM. Una solución simple es ponerlo en una función y activarlo cuando finalice la carga. Por favor, consulte la siguiente pregunta:
La mayoría de las veces, recibo este error, simplemente porque el elemento al que me refiero en getElementById
no está en la página o estoy usando la identificación incorrecta. Error obvio, pero asegúrese de verificar dos veces antes de sumergirse en soluciones más avanzadas.
Me doy cuenta de que probablemente sea un poco tarde, pero espero que pueda ayudar a alguien más:
En su caso, la función de inicialización no se está activando, aunque también puede deberse a que los atributos de ancho y alto no se configuran en el div contenedor. Si no desea simplemente agregar el evento de carga a la etiqueta del cuerpo, puede usar el siguiente jQuery:
//Add onload to body
$(window).load(function(){
initialize()
});
No estoy seguro, pero podría ser esta línea
map_4e60b1f9c94ae.setCenter(new google.maps.LatLng(0, 0, 1));
Creo que new google.maps.LatLng
toma solo dos atributos, la latitud y la longitud.
Prueba este bit del sitio de mapas.
var latlng = new google.maps.LatLng(-34.397, 150.644);
http://code.google.com/apis/maps/documentation/javascript/tutorial.html
Trate de poner el código JavaScript en el cuerpo y DESPUÉS div id="map_canvas"
Algo como esto:
<body>
<div id="map_canvas"></div>
<script type="text/javascript">
var map_4e60b1f9c94ae = new google.maps.Map(document.getElementById("map_canvas"), {"mapTypeId":"roadmap","zoom":10});
map_4e60b1f9c94ae.setCenter(new google.maps.LatLng(0, 0, 1));
</script>
</body>