繁体   English   中英

javascript google maps api v3 markers and infowindow

[英]javascript google maps api v3 markers and infowindow

我有谷歌地图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);
});
}
}

我希望有一个人可以帮助我 :)?

如果其他一切都没问题 ,那么变量范围问题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));
}

也许这就是问题所在:

infowindow.open(map2,marker);

你在哪里声明map2 什么是map

如果你有一系列的位置,如下所示

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);

工作实例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM