如何动态加载谷歌地图

有时你需要动态加载谷歌地图,当你尝试这样做时,你会遇到一些问题,你不知道如何修复它们。
这是一种动态加载 Google 地图的方法。

解决方案是:我们可以以简单的形式初始化地图,我们通常如何做,并且我们必须使该地图不可见。

<!DOCTYPE html>
<html>
   <head>
      <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA3XfuMJJGzaU8TUItQM7XWD4esZdbpgtA"></script>
      <script>
         function initialize() {
           var prop = {
            center:new google.maps.LatLng(51.508742,-0.120850),
            zoom:5,
            mapTypeId:google.maps.MapTypeId.ROADMAP
           };
          var map=new google.maps.Map(document.getElementById("onitroad-map"), prop);
         }
         google.maps.event.addDomListener(window, 'load', initialize);
      </script>
   </head>
   <body>
      <div id="onitroad-map" style="width:500px;height:380px;"></div>
   </body>
</html>

现在让我们让地图不可见,把它放在 CSS 样式 display: none 上。
然后我们将通过任何事件进行加载地图的操作。

<!DOCTYPE html>
<html>
   <head>
      <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA3XfuMJJGzaU8TUItQM7XWD4esZdbpgtA"></script>
      <script>
         var map;
         function initialize() {
           var prop = {
            center:new google.maps.LatLng(51.508742,-0.120850),
            zoom:5,
            mapTypeId:google.maps.MapTypeId.ROADMAP
           };
          return new google.maps.Map(document.getElementById("onitroad-map"), prop);
         }
         setTimeout(function(){
            map = initialize();
         },500);
         function w3Load(){
            document.getElementById("onitroad-map").style.display = 'block';
            google.maps.event.trigger(map, 'resize');
         }
      </script>
   </head>
   <body>
      <div id="onitroad-map" style="width:500px;height:380px;display: none"></div>
      <button onclick="w3Load()">Load The Map</button>
   </body>
</html>
日期:2020-06-02 22:17:24 来源:oir作者:oir