以下代码存在问题.Google地图标记显示正常,但相关信息窗口未在点击时显示。点击后,没有任何动作发生。有什么建议?谢谢!
var length = data[0].length;
var infowindow = [];
var contentString = [];
var marker = [];
for (var i = 0; i < length; i++) {
var x = data[0][i].number;
var pos = new google.maps.LatLng(data[0][i].lat, data[0][i].long);
marker[i] = new google.maps.Marker({
position: pos,
map: map,
icon: 'http://maps.google.com/mapfiles/ms/icons/' + data[0][i].color + '-dot.png',
description: data[0][i].providerfirst,
id: i
});
//document.write(marker[i].icon);
contentString[i] = '<div id="content" class="infowindow">' +
'<div id="siteNotice">' +
'</div>' +
'<h1 id="firstHeading" class="firstHeading"> ' + data[0][i].providerfirst + ' ' +
data[0][i].providerlast + ', ' + data[0][i].credentials + '</h1>' +
'<p>' +
data[0][i].address + '<br>' +
data[0][i].city + ', ' + data[0][i].state + ', ' + data[0][i].zip + '<br>' +
'</p>' +
'<p>NPI: ' + data[0][i].npi + '</p>' +
'<p>Network: ' + data[0][i].type + '</p>' +
'<div id="bodyContent">' +
'</div>' +
'</div>';
//document.write(contentString[i]);
//document.write(infowindow[i].content);
infowindow[i] = new google.maps.InfoWindow({
content: contentString[i]
})
}
答案 0 :(得分:0)
你需要把
contentString[i] = '<div id="content" class="infowindow">' +
'<div id="siteNotice">' +
'</div>' +
'<h1 id="firstHeading" class="firstHeading"> ' + data[0][i].providerfirst + ' ' +
data[0][i].providerlast + ', ' + data[0][i].credentials + '</h1>' +
'<p>' +
data[0][i].address + '<br>' +
data[0][i].city + ', ' + data[0][i].state + ', ' + data[0][i].zip + '<br>' +
'</p>' +
'<p>NPI: ' + data[0][i].npi + '</p>' +
'<p>Network: ' + data[0][i].type + '</p>' +
'<div id="bodyContent">' +
'</div>' +
'</div>';
//document.write(contentString[i]);
//document.write(infowindow[i].content);
infowindow[i] = new google.maps.InfoWindow({
content: contentString[i]})
这部分代码在
这样的函数中function setInfoWindow(i){
//all this here
}
你需要了解javascript概念 https://www.youtube.com/watch?v=8aGhZQkoFbQ
答案 1 :(得分:0)
你需要一个点击处理程序,只是因为你创建了infowindow和数据,你没有以任何我能看到的方式关联它们
marker[i].addListener('click',function(){
infowindow[i].open(map,marker[i]);
});