有时你需要动态加载谷歌地图,当你尝试这样做时,你会遇到一些问题,你不知道如何修复它们。
这是一种动态加载 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