2013-08-01 52 views
4

我想添加动态标记到我的地图,其中每个位于经度[我]和纬度[我],我想要一个弹出窗口打开时,用户点击标记,在窗口的网址& id = id [i]。谷歌地图动态添加标记

我尝试使用以下内容:

<script type="text/javascript"> 
function initialize() { 
var mapOptions = { 
zoom: 5, 
center: new google.maps.LatLng(48, 2), 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 

var map = new google.maps.Map(document.getElementById('map-canvas'), 
    mapOptions); 

for (var i = 0; i < id.length; i++) { 
var position = new google.maps.LatLng(latitude[i],longitude[i]); 
marker[i] = new google.maps.Marker({ 
    position: position, 
    map: map 
}); 

marker[i].setTitle("pv"); 
google.maps.event.addListener(marker[i], 'click', function() { 
window.open('blah.php?id='+id[i],'name','height=1000,width=1000') 
}); 

} 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 

它似乎并没有工作,因为上的标记,当点击,功能的addListener将被调用,此刻我= id.length

我想要的是标记[0]与ID [0],ID打开的窗口[1]标记[1]等..

回答

3

你能尝试更换此 -

google.maps.event.addListener(marker[i], 'click', function() { 
    window.open('blah.php?id='+id[i],'name','height=1000,width=1000') 
}); 

本 -

(function (i) { 
    google.maps.event.addListener(marker[i], 'click', function() { 
     window.open('blah.php?id='+id[i],'name','height=1000,width=1000') 
    }); 
})(i); 

结束语在封闭的听众将在该时间点与国家执行它。 看看更多的细节 - adding 'click' event listeners in loop

+0

我试过了,现在整个地图都不加载 – maggie

+0

哦,不,它是完美的!你最后忘了一个支架。 Thx – maggie

+0

不客气。编辑答案。 – kinshukkar