GoogleMaps API适用于html文件,但不适用于JS文件

时间:2018-11-13 12:00:11

标签: javascript google-maps-api-3

我正在使用在Google文档中找到的示例:https://developers.google.com/maps/documentation/javascript/tutorial#asynch

我已经复制/粘贴了hello世界代码,它工作正常:它向我显示了指定位置的地图。但是现在我希望能够在JS文件中的此映射中进行易于阅读的工作,因此我只在<script src="RunUTrail.js"></script>之前添加了</body>。 该文件包含与<script>中完全相同的方法:

 var map = new google.maps.Map(document.getElementById('map'), {
  center: {lat: -34.397,lng: 150.644},
  zoom: 8
  });

除了我有ReferenceError: google is not defined以外,它什么都不做。使用JS文件中的API会丢失什么?

1 个答案:

答案 0 :(得分:1)

您需要将用于地图显示的js代码放在类似initMap()的回调函数中,并在Google Maps脚本源中添加回调函数的名称。

HTML代码:

  <div id="map" style="width: 500px; height: 400px;"></div>
      <script async defer
            src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>

JS代码:

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -34.397, lng: 150.644},
    zoom: 8
  });
}