2016-04-22 135 views
0

阅读了一段时间后...我想开始使用Google Maps API for Javascript。我在他们的网站上获得了关键字,我尝试了很多方法来创建地图,但现在我想通过先前的“地点”创建地图,所以我首先使用Geocoder.geocode(),然后创建地图,昨晚它正在工作。谷歌未定义(api地图错误)

所以,我决定开始在这些地图中使用覆盖(标记),但我不知道我得到了未捕获的错误:google没有定义。

我读了一些关于这一点,我知道大多数的时间大约是异步的问题,但是,我仍然不知道如何解决它,这里是代码:

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

感谢了很多您的帮助页面后

+0

每当有人有这样的问题加载,它是ALW ays,因为在脚本标签中有'async','defer'和'&callback = initMap'。你在哪里找到这个代码? – cdm

回答

0

调用JavaScript是使用的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

它工作的感谢!我仍然有与JS类似的问题,真的很感谢 –