2012-09-19 4 views
13

Desidero utilizzare la funzione di geolocalizzazione e direzione, ma c'è l'errore google is not defined. il codice è il seguente:Unchaught ReferenceError: google is not defined

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); 
     } 

Sembra che il loadScript non funzioni!

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

L'errore salta da qui. C'è qualcuno che sa come scoprirlo? Ho bisogno di usare la chiave per ottenere il servizio di geolocalizzazione, quindi non posso usare semplice

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

Utilizzare i tag popolari per descrivere la lingua e le tecnologie in uso. Questo aiuterà le persone a trovare la tua domanda e rispondere. – Artemix

risposta

11

ho provato sul mio con questo codice - ha funzionato bene per me

dinamico con chiave

<!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> 

statico senza chiave

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

Durante la navigazione attraverso la rete ho ribaltato 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.

Vedi Google Maps API

Quindi, a quanto pare non è più necessario una chiave sviluppatore! Ho provato con entrambi - statico senza chiave e dinamnic con chiave - entrambi funzionanti.

11

Se le persone ricevono l'errore in console, ecco la soluzione semplice che ho applicato.

includono i file di script in data sequenza ..

<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> 

È innanzitutto necessario includere 'maps.googleapis.com/maps/api/js?sensor=false' prima poi andare per la libreria jQuery e rimuoverlo da sotto entrambi (funzionerà). Spero che funzionerà sicuramente.

0

Google non è definito significa che la tua google map libary non è caricata il che significa che sei su https o http e stai richiedendo tramite http ot https quindi cambialo in https o http ... significa se sei su http poi

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

dire se si è in https allora

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