Javascript Google Maps,信息窗口在获取窗口边界内的所有标记后不使用多个标记

Javascript Google Maps,信息窗口在获取窗口边界内的所有标记后不使用多个标记,javascript,google-maps,Javascript,Google Maps,我将多个标记动态添加到地图中。我需要地图将焦点放在地图上显示的所有标记上。这取决于搜索字段中的输入。我还需要每个标记的信息窗口。 在我把地图集中在所有的标记上之前,我让信息窗口工作。现在,我发现代码将集中在所有标记上,即使它们在国家的另一边,我无法让信息窗口工作 <script> function map_initialize() { var member_locations = [ [ "Member 1", new google.maps.L

我将多个标记动态添加到地图中。我需要地图将焦点放在地图上显示的所有标记上。这取决于搜索字段中的输入。我还需要每个标记的信息窗口。 在我把地图集中在所有的标记上之前,我让信息窗口工作。现在,我发现代码将集中在所有标记上,即使它们在国家的另一边,我无法让信息窗口工作

<script>
function map_initialize() {
  var member_locations = [ 
      [ "Member 1", new google.maps.LatLng(47.1330611, -122.4350594),1],
      [ "Member 12", new google.maps.LatLng(47.2394208, -122.3549794),2],
      [ "Member 123", new google.maps.LatLng(47.2071584, -122.2370664),3],
      [ "Member 11", new google.maps.LatLng(47.1520592, -122.3524013),4],
      [ "Member 112", new google.maps.LatLng(47.1178347, -122.0554941),5],
      [ "Member 1122", new google.maps.LatLng(47.3104558, -122.5861279),6]
  ];
  var map = new google.maps.Map(document.getElementById("directory_map"), {
    center: new google.maps.LatLng(0, 0),
    zoom: 0,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  for (var i = 0; i < member_locations.length; i++) {
    new google.maps.Marker({
      position: member_locations[i][1],
      map: map,
      title: member_locations[i][0]
    });
  }

  var infowindow = new google.maps.InfoWindow();
  var marker, i;      

  var latlngbounds = new google.maps.LatLngBounds();
  for (var i = 0; i < member_locations.length; i++) {
    latlngbounds.extend(member_locations[i][1]);
  }
  map.fitBounds(latlngbounds);

  for (var i = 0; i < member_locations.length; i++) {
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
      return function() {
        infowindow.setContent(member_locations[i][0]);
        infowindow.open(map, marker);
      }
    })(marker, i));        
  }   

  new google.maps.Rectangle({
    bounds: latlngbounds,
    map: map,
    fillColor: "#000000",
    fillOpacity: 0.2,
    strokeWeight: 0
  });
}
google.maps.event.addDomListener(window, 'load', map_initialize);
</script>

函数映射_初始化(){
变量成员位置=[
[“成员1”,新的google.maps.LatLng(47.1330611,-122.4350594),1],
[“成员12”,新的google.maps.LatLng(47.2394208,-122.3549794),2],
[“成员123”,新的google.maps.LatLng(47.2071584,-122.2370664),3],
[“成员11”,新的google.maps.LatLng(47.1520592,-122.3524013),4],
[“会员112”,新google.maps.LatLng(47.1178347,-122.0554941),5],
[“会员1122”,新google.maps.LatLng(47.3104558,-122.5861279),6]
];
var map=new google.maps.map(document.getElementById(“目录映射”){
中心:新google.maps.LatLng(0,0),
缩放:0,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
对于(变量i=0;i
您没有将
信息窗口
正确添加到标记,下面的循环中没有定义
标记
,并且
成员位置
不是
谷歌地图的数组。标记
对象:

  for (var i = 0; i < member_locations.length; i++) {
    google.maps.event.addListener(marker, 'click', (function(marker, i) {
      return function() {
        infowindow.setContent(member_locations[i][0]);
        infowindow.open(map, marker);
      }
    })(marker, i));        
  } 
/*始终明确设置贴图高度以定义div的大小
*包含映射的元素*/
#目录映射{
身高:100%;
}
/*可选:使示例页面填充窗口*/
html,
身体{
身高:100%;
保证金:0;
填充:0;
}

简单地图