Javascript 异步谷歌地图信息窗口

Javascript 异步谷歌地图信息窗口,javascript,google-maps,asynchronous,Javascript,Google Maps,Asynchronous,我试图在我的网站上放置一个带有信息窗口的谷歌地图,但需要异步加载。这是我正在使用的代码: function initialize(lat,lng) { var mapProp = { center: new google.maps.LatLng(lat,lng), zoom:15, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI:true }; var map

我试图在我的网站上放置一个带有信息窗口的谷歌地图,但需要异步加载。这是我正在使用的代码:

function initialize(lat,lng) {

   var mapProp = {
      center: new google.maps.LatLng(lat,lng),
      zoom:15,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      disableDefaultUI:true
   };
   var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
}

function loadScript() {
   var script = document.createElement("script");
   script.type = "text/javascript";
   script.src = "http://maps.googleapis.com/maps/api/js?key=&sensor=false&callback=initialize";
   document.body.appendChild(script);
}

window.onload = loadScript;
它使用单击事件初始化,并使用Javascript生成的html打印:

...
var lat=40.7127; 
var lng=-74.0059;
..
<div onclick="initialize('+lat+','+lng+');">map</div>
..
html_str += '<div id="googleMap" class="map"></div>';
document.getElementById(id).innerHTML = html_str;

我尝试将此代码放入initialize()函数中,但没有成功。我需要帮助使此信息窗口代码适应我上面的代码。

在window.onload调用的loadScript函数中,您已经有一个用于初始化的回调。但在这种情况下,您没有指定坐标。我认为在这种情况下初始化失败

您是否通过click you div显式调用initialize函数,尝试不回调的loadScript函数

function loadScript() {
   var script = document.createElement("script");
   script.type = "text/javascript";
   script.src = "http://maps.googleapis.com/maps/api/js?key=&sensor=false";
   document.body.appendChild(script);
}

要向地图添加信息窗口,您需要给它一个位置或给它一个现有的标记作为锚定。我能看到的最好的结果是,您应该得到一个javascript错误:
uncaughtreferenceerror:marker未定义

如果没有标记,请设置信息窗口的位置:

var infowindow = new google.maps.InfoWindow({
    content: "Hello World!"
});
infowindow.setPosition(map.getCenter());
infowindow.open(map); 
var infowindow = new google.maps.InfoWindow({
    content: "Hello World!"
});
infowindow.setPosition(map.getCenter());
infowindow.open(map);