2016-04-22 14 views
0

Nachdem ich etwas Zeit gelesen habe ... wollte ich das Google Maps API für Javascript verwenden. Ich habe den Schlüssel auf ihrer Website, ich habe versucht, viele Möglichkeiten, um Karten zu erstellen, aber jetzt möchte ich eine Karte von einem früheren "Ort" erstellen, also zuerst, verwende ich den Geocoder.geocode() und dann erstelle ich die Karte, letzte Nacht Es funktionierte okey.Google ist nicht definiert (Fehler api maps)

Also, ich entschied mich, Overlays (Marker) in diesen Karten zu verwenden, aber ich weiß nicht Ich bekomme den Uncaught-Fehler: Google ist nicht definiert.

ich ein wenig darüber zu lesen und ich weiß, die meisten Zeiten über asynchrones Problem ist, aber ich weiß noch nicht, wie es zu beheben, hier ist der Code:

<!DOCTYPE html> 
<html> 
    <head> 
    <style type="text/css"> 
     html, body { height: 100%; margin: 0; padding: 0; } 
     #map { height: 100%; } 
    </style> 

    </head> 


    <body> 

    <div id="map"></div> 

    <script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script> 
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAeaWLxSHFEdwWEVVYajslt7R9eP0ZpLXQ&callback=initMap"></script> 

    <script type="text/javascript"> 

     var sLocation = "Castillejos 265 Barcelona"; 
     var sLocationToSearch =sLocation.split(' ').join('+'); 

     $.ajax({ 
      type: 'GET', 
      url: 'https://maps.googleapis.com/maps/api/geocode/json?address='+ sLocationToSearch +'&key=AIzaSyAeaWLxSHFEdwWEVVYajslt7R9eP0ZpLXQ', 

      success: function(res){ 
       // ParseFloat the <latitud> and <longitud> 
       //var myLatlng = new google.maps.LatLng(parseFloat(trader.geo.lat),parseFloat(trader.geo.lon)); 

       initMap(res.results[0].geometry.location); 
      }, 
      error: function(error){ 
       console.log(error); 
      } 
     }); 

     function initMap(oLatlng){ 
      var map = new google.maps.Map(document.getElementById('map'), { 
       center: oLatlng, 
       zoom: 15 
      }); 
     } 

    </script> 
    </body> 
</html> 

vielen Dank für Ihre Hilfe

+0

Jedes Mal, wenn jemand Problem wie dieses hat, geladen wird, ist es ALW ays wegen 'async',' defer' und '& callback = initMap' im Skript-Tag. Wo hast du diesen Code gefunden? – cdm

Antwort

0

Aufruf Javascript für Seite durch die Verwendung window.onload

<!DOCTYPE html> 
<html> 
<head> 
    <style type="text/css"> 
     html, body 
     { 
      height: 100%; 
      margin: 0; 
      padding: 0; 
     } 

     #map 
     { 
      height: 100%; 
     } 
    </style> 

</head> 


<body> 

<div id="map"></div> 

<script src="https://code.jquery.com/jquery-2.2.3.min.js" integrity="sha256-a23g1Nt4dtEYOj7bR+vTu7+T8VP13humZFBJNIYoEJo=" crossorigin="anonymous"></script> 
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAeaWLxSHFEdwWEVVYajslt7R9eP0ZpLXQ&callback=initMap"></script> 

<script type="text/javascript"> 
    window.onload = function() 
    { 
     var sLocation = "Castillejos 265 Barcelona"; 
     var sLocationToSearch = sLocation.split(' ').join('+'); 

     $.ajax({ 
      type : 'GET', 
      url : 'https://maps.googleapis.com/maps/api/geocode/json?address=' + sLocationToSearch + '&key=AIzaSyAeaWLxSHFEdwWEVVYajslt7R9eP0ZpLXQ', 

      success : function(res) 
      { 
       // ParseFloat the <latitud> and <longitud> 
       //var myLatlng = new google.maps.LatLng(parseFloat(trader.geo.lat),parseFloat(trader.geo.lon)); 

       initMap(res.results[0].geometry.location); 
      }, 
      error : function(error) 
      { 
       console.log(error); 
      } 
     }); 

     function initMap(oLatlng) 
     { 
      var map = new google.maps.Map(document.getElementById('map'), { 
       center : oLatlng, 
       zoom : 15 
      }); 
     } 
    } 
</script> 
</body> 
</html> 
+0

es funktionierte dank !! Ich habe immer noch Probleme wie mit JS, wirklich danke Typ –

Verwandte Themen