Javascript 谷歌地图api v3-“;“信息窗口未定义”;错误
地图出现了,点出现了。我的标题也出现了。但只要我点击标记获取信息,就什么也没有出现。Firebug信息如下 信息通过数据库输入,有多个项目;地图上显示了多个标记 任何帮助都将受到感谢。谢谢 Firebug点信息: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
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));
}