标记内容(infoWindow)谷歌地图
我想添加infoWindow到Google Map上的多个标记。我来的最接近的是获得一个infoWindow来显示你可以在数组中看到的所有标记的最后一个地址。我粘贴下面的代码不起作用,我得到一个“Uncaught TypeError:无法读取未定义的属性'4'。我敢肯定这是一个范围问题,但我在这里绕圈,可以做一些帮助:标记内容(infoWindow)谷歌地图
var hotels = [
['ibis Birmingham Airport', 52.452656, -1.730548, 4, 'Ambassador Road<br />Bickenhill<br />Solihull<br />Birmingham<br />B26 3AW','(+44)1217805800','(+44)1217805810','[email protected]','http://www.booknowaddress.com'],
['ETAP Birmingham Airport', 52.452527, -1.731644, 3, 'Ambassador Road<br />Bickenhill<br />Solihull<br />Birmingham<br />B26 3QL','(+44)1217805858','(+44)1217805860','[email protected]','http://www.booknowaddress.com'],
['ibis Birmingham City Centre', 52.475162, -1.897208, 2, 'Ladywell Walk<br />Birmingham<br />B5 4ST','(+44)1216226010','(+44)1216226020','[email protected]','http://www.booknowaddress.com']
];
for (var i = 0; i < hotels.length; i++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(hotels[i][1], hotels[i][2]),
map: map,
icon: image,
title: hotels[i][0],
zIndex: hotels[i][2]
});
var infoWindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker, 'click', function() {
var markerContent = hotels[i][4];
infoWindow.setContent(markerContent);
infoWindow.open(map, this);
});
}
感谢预期。
我们已经解决了这个问题,虽然我们没有想到在for之外添加addListener会产生任何效果。这里的答案:
创建它与您的信息的信息窗口新功能:
function addInfoWindow(marker, message) {
var infoWindow = new google.maps.InfoWindow({
content: message
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map, marker);
});
}
然后打电话给你想创建数组ID的功能和标记:
addInfoWindow(marker, hotels[i][3]);
尽管这个问题已经得到解答,但我认为这种方法更好: http://jsfiddle.net/kjy112/3CvaD/摘自StackOverFlow上的这个问题google maps - open marker infowindow given the coordinates:
每个标记得到一个“信息窗口”条目:
function createMarker(lat, lon, html) {
var newmarker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lon),
map: map,
title: html
});
newmarker['infowindow'] = new google.maps.InfoWindow({
content: html
});
google.maps.event.addListener(newmarker, 'mouseover', function() {
this['infowindow'].open(map, this);
});
}
+1这个作品很好!你不能用infowindow的自定义属性初始化它,但显然你可以创建'infowindow'键......很高兴它可以工作。谢谢! – 2016-05-06 06:29:45
最好的回答:) – 707 2016-09-15 18:52:24
我经历了很多,所以这个问题的答案的变种看着。你的答案是最清楚的。谢谢。 – ZMorek 2011-08-30 19:25:29
@DarrylGodden ...谢谢你的关于infowindow的信息。 – 2013-04-05 09:58:05
什么是info变量? – 2013-06-27 11:58:44