¿Está esto documentado en alguna parte que necesito especificar una devolución de llamada para que se defina el módulo google.maps? O es esto un error.Si no se especifica la devolución de llamada cuando se cargan gmaps de forma asíncrona, no se cargan los demás scripts de google maps
El siguiente código no carga el módulo de mapas Google:
<!DOCTYPE html>
<html>
<head>
<title>
Google Maps JavaScript API v3 Example: Asynchronous Map Simple
</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map_canvas { height: 100% }
</style>
<script type="text/javascript">
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
}
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://maps.googleapis.com/maps/api/js?v=3.6&key=myKey&sensor=false' //adding 'callback=something' gets the maps module to load
document.body.appendChild(script);
}
window.onload = loadScript;
</script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
Editar - respuesta a la respuesta
Para ello, puede inyectarse su propia etiqueta en respuesta a una Evento window.onload o una llamada a función, pero adicionalmente necesita instruir el bootstrap del API JavaScript de Maps para retrasar la ejecución de su código de aplicación hasta que el código API JavaScript de Maps esté completamente cargado. Usted puede hacerlo utilizando el parámetro de devolución de llamada, que toma como argumento la función para ejecutar al completar la carga de la API.
¿Cómo implica eso que no tener una devolución de llamada no cargará ninguna de las API? Dice que puede usar el parámetro de devolución de llamada para ejecutar una función cuando el código está completamente cargado, pero no dice que el código nunca se cargará sin un parámetro de devolución de llamada.
I editado mi pregunta para su respuesta. – pllee
La redacción puede ser un poco extraña, pero me parece bastante claro que debe especificar el parámetro de devolución de llamada. Es un patrón muy común para cargar scripts de forma asíncrona. – puckhead
Bueno, si dijeron que debe en lugar de mayo, no publicaría esta pregunta. Imponen el parámetro del sensor y alertan a los desarrolladores si no se especifica uno, sería bueno tener la misma funcionalidad con otro parámetro "requerido". Esto me suena como un error. – pllee