Javascript 谷歌地图api v3-“;“信息窗口未定义”;错误

Javascript 谷歌地图api v3-“;“信息窗口未定义”;错误,javascript,google-maps-api-3,Javascript,Google Maps Api 3,地图出现了,点出现了。我的标题也出现了。但只要我点击标记获取信息,就什么也没有出现。Firebug信息如下 信息通过数据库输入,有多个项目;地图上显示了多个标记 任何帮助都将受到感谢。谢谢 Firebug点信息: MarkLat[i] = xx.xxxxxxxxxxxxxx; MarkLong[i] = -xx.xxxxxxxxxxxxxx; MarkerTitle[i] = 'Title 1'; Display[i] = '<table><tr><td>Ti

地图出现了,点出现了。我的标题也出现了。但只要我点击标记获取信息,就什么也没有出现。Firebug信息如下

信息通过数据库输入,有多个项目;地图上显示了多个标记

任何帮助都将受到感谢。谢谢

Firebug点信息:

MarkLat[i] = xx.xxxxxxxxxxxxxx;
MarkLong[i] = -xx.xxxxxxxxxxxxxx;
MarkerTitle[i] = 'Title 1';
Display[i] = '<table><tr><td>Title 1</td></tr><tr><td>Title 1 Address<br />Title 1 City, State Zip</td></tr><tr><td>Title 1 Phone</td></tr><tr><td>Title 1 Email</td></tr><tr><td>Title 1 URL</td></tr></table>';
MarkLat[i]=xx.xxxxxxxxxxxx;
MarkLong[i]=-xx.xxxxxxxxxxxx;
MarkerTitle[i]=“标题1”;
显示[i]=“标题1标题1地址
标题1城市、州ZipTitle 1电话标题1电子邮件标题1 URL”;
Firebug错误: 未定义信息窗口 信息窗口。打开(地图、标记)

代码:


var i=-1;
var MarkLat=新数组();
var MarkLong=新数组();
var MarkerTitle=新数组();
var Display=新数组();
var MapCenter=new google.maps.LatLng(xx.xxxxxxxxxxxxx,-xx.xxxxxxxxxxxxxxxxx)
var i=i+1;
MarkLat[i]=[[Lat]];
MarkLong[i]=[[Long]];
MarkerTitle[i]='[[Title]]';
显示[i]='[[Title][[Address]]]
[[City]],[[State]][[Zip]][[Phone]][[Email]][[WebURL]]'; 函数初始化(){ 变量myOptions={ 缩放:12, 中心:地图中心, 动物控制:对, ZoomControl选项:{ 位置:google.maps.ControlPosition.TOP\u右上角, 样式:google.maps.ZoomControlStyle.SMALL }, mapTypeControl:true, mapTypeControlOptions:{ 样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单 }, scaleControl:对, 规模控制:{ 位置:google.maps.ControlPosition.TOP\u中心 }, mapTypeId:google.maps.mapTypeId.ROADMAP, }; var map=new google.maps.map(document.getElementById('map_canvas'),myOptions); 对于(变量i=0,长度=50;i
信息窗口!=信息窗口


您刚刚用大写字母声明了它,试图使用它而不将其更改为大写字母W对我来说是不够的。只打开了一个位置。我用两点测试了您的代码:

MarkLat = [];
MarkLong = [];
Display = [];
MarkerTitle= [];

MarkLat[0] = 0;
MarkLong[0] = 0;
Display[0] = { content: "hi" };
MarkerTitle[0] = "hello";

MarkLat[1] = 10;
MarkLong[1] = 10;
Display[1] = { content: "hi 2" };
MarkerTitle[1] = "hello 2";
我猜您在任何给定时间都只希望屏幕上有一个信息窗口。然后,应该声明一个InfoWindow,内容保存在标记中,并在单击标记时更改内容

var infoWindow = new google.maps.InfoWindow();
for (var i = 0, length = Display.length; i < length; i++) {
  var latLng = new google.maps.LatLng(MarkLat[i],MarkLong[i]);

  // Creating a marker and putting it on the map
  var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: MarkerTitle[i],
    infoWindowContent: Display[i]
  });

  // Notice I used the 'this' keyword inside the listener
  google.maps.event.addListener(marker, 'click', function() {
    infoWindow.setContent(this.infoWindowContent.content);
    infoWindow.open(map,this);
  });
}
var infoWindow=new google.maps.infoWindow();
对于(变量i=0,长度=Display.length;i
另一种方法是弹出许多信息窗口,需要更改单击侦听器,以便保留对每个信息窗口的引用。这个效果是通过围绕infoWindow.open函数的匿名函数实现的(创建了一个新的函数作用域)

for(变量i=0,长度=Display.length;i
您好,谢谢您的回复。我尝试更改行“var infoWindow=new google.maps.infoWindow(Display[I]);”并将maps.infoWindow更改为maps.infoWindow,但没有更改;未定义相同的信息窗口。我查看了不同的配置和示例,但似乎一直存在此问题。我已使其正常工作。再次感谢您的回复;它帮助解决了这个问题。'code'for(var i=0,length=50;ivar infoWindow = new google.maps.InfoWindow(); for (var i = 0, length = Display.length; i < length; i++) { var latLng = new google.maps.LatLng(MarkLat[i],MarkLong[i]); // Creating a marker and putting it on the map var marker = new google.maps.Marker({ position: latLng, map: map, title: MarkerTitle[i], infoWindowContent: Display[i] }); // Notice I used the 'this' keyword inside the listener google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(this.infoWindowContent.content); infoWindow.open(map,this); }); }
for (var i = 0, length = Display.length; i < length; i++) {
  var latLng = new google.maps.LatLng(MarkLat[i],MarkLong[i]);
  var infoWindow = new google.maps.InfoWindow(Display[i]);

  // Creating a marker and putting it on the map
  var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: MarkerTitle[i] 
  });

  google.maps.event.addListener(marker, 'click', (function(infoWindow) {
    return function() {
      infoWindow.open(map,this);
    }
  })(infoWindow));
}