我在google maps api v3和带有infowindow的标记时遇到问题。
以下部分代码集标记,但无法通过单击访问infowindows。
var infowindow = new google.maps.InfoWindow();
var marker, i;
function setMarker(){
for (i = 1; i < 240; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(line[i][0], line[i][1]),
map: map2
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent("Test");
infowindow.open(map,marker);
});
}
}
我希望有人可以帮助我:)?
答案 0 :(得分:2)
如果其他一切都没问题,那么变量范围问题和infowindow.open(map, marker)
应该是map2
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 1; i < 240; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(line[i][0], line[i][1]),
map: map2
});
google.maps.event.addListener(marker, 'click', (function(marker) {
return function() {
infowindow.setContent("Test");
infowindow.open(map2, marker);
}
})(marker));
}
答案 1 :(得分:0)
也许这就是问题:
infowindow.open(map2,marker);
您声明map2
的位置?什么是map
?
答案 2 :(得分:0)
如果你有一系列的位置,如下面的
var locations = [
[33.890542, 150.274856],
[36.923036, 152.259052],
[38.028249, 154.157507]
];
然后您可以使用以下代码
function initialize() {
var myLatlng = new google.maps.LatLng(locations[0][0], locations[0][1]);
var myOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
for(var i=0;i<locations.length;i++)
{
var latlng=new google.maps.LatLng(locations[i][0], locations[i][1]);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: "marker : "+(i+1)
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);