2012-09-19 19 views
13

Quiero usar la función de geolocalización y dirección, pero existe el error google is not defined. el código es el siguiente:Uncaught ReferenceError: google no está definido

function loadScript() { 
      var script = document.createElement('script'); 
      script.type = 'text/javascript'; 
      script.src = "https://maps.googleapis.com/maps/api/js?key=mykey&sensor=true" + "&callback=initialize"; 
      document.body.appendChild(script); 
     } 

¡Parece que loadScript no funciona!

var mapOptions = { 
       zoom : 13, 
       mapTypeId : google.maps.MapTypeId.ROADMAP 
      }; 
      map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); 

El error salta desde aquí. ¿Alguien sabe cómo resolverlo? Necesito utilizar la clave para obtener el servicio de geolocalización, así que no puedo utilizar sencilla

<script src="https://maps.googleapis.com/maps/api/js?sensor=true"></script> 
+0

Use etiquetas populares para describir el lenguaje y las tecnologías que está utilizando. Esto ayudará a las personas a encontrar su pregunta y responderla. – Artemix

Respuesta

11

lo probé en mi cuenta con este código - funcionó bien para mí

dinámico con llave

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100%; } 
     body 
     { 
      height: 100%; 
      margin: 0px; 
      padding: 0px; 
     } 
     #map_canvas { height: 100%;} 
    </style> 
    <script type="text/javascript"> 
     function initialize() { 
      var latlng = new google.maps.LatLng(-34.397, 150.644); 
      var myOptions = { 
       zoom: 8, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
     } 
     var myKey = "ENTER_YOUR_KEY_HERE"; 
     function loadScript() { 
      var script = document.createElement('script'); 
      script.type = 'text/javascript'; 
      script.src = "https://maps.googleapis.com/maps/api/js?key=" + myKey + "&sensor=false&callback=initialize"; 
      document.body.appendChild(script); 
     } 
    </script> 
</head> 
<body onload="loadScript()"> 
    <div id="map_canvas" style="width: 100%; height: 100%"> 
    </div> 
</body> 
</html> 

estático sin llave

... 
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"> 
</script> 
</head> 
<body onload="initialize()"> 
    ... 

¡Cuando navegué por la red caí sobre una nota importante!

Google Maps JavaScript API v3

The Google Maps JavaScript API v3 does not require an API key to function correctly. However, we strongly encourage you to load the Maps API using an APIs Console key which allows you to monitor your application's Maps API usage. Learn how to use an APIs Console key.

Ver Google Maps API

Así que, al parecer, ya no necesita una clave de desarrollador! Lo intenté con ambos - estática sin clave y dinámicos con la clave - ambos funcionaron.

11

Si la gente está recibiendo un error en la consola, esta es la solución simple que apliqué.

incluyen los archivos de comandos en secuencia dada ..

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> 

primer lugar, debe incluir 'maps.googleapis.com/maps/api/js?sensor=false' primero y luego ir por la biblioteca jQuery y extraerla desde abajo ambos (funcionará). Espero que definitivamente funcione.

0

Google no está definido significa que su google map libary no está cargado, lo que significa que usted está en https o http y lo está solicitando a través de http a https así que cámbielo a https o http .... significa si usted está en http continuación

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 

significa si usted está en https entonces

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
Cuestiones relacionadas