Javascript 谷歌地图信息窗口在点击循环时未打开
我无法让Google Map API上的信息窗口在循环内单击时打开,但是所有信息窗口都显示外部单击事件Javascript 谷歌地图信息窗口在点击循环时未打开,javascript,google-maps,click,infowindow,Javascript,Google Maps,Click,Infowindow,我无法让Google Map API上的信息窗口在循环内单击时打开,但是所有信息窗口都显示外部单击事件 var map; function initMap() { var mapProp = { center: new google.maps.LatLng(-22, 133), zoom: 4, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Ma
var map;
function initMap() {
var mapProp = {
center: new google.maps.LatLng(-22, 133),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map'), mapProp);
}
var request = new XMLHttpRequest();
request.open('GET', 'https://...', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
// Success!
var data = JSON.parse(request.responseText);
appendData(data.data);
console.log(data, "Data received");
} else {
// We reached our target server, but it returned an error
}
};
request.onerror = function() {
// There was a connection error of some sort
};
request.send();
function appendData (data) {
var markers = [];
for (var i = 0; i < data.length; i++) {
var pos = new google.maps.LatLng(data[i].Latitude, data[i].Longitude);
markers[i] = new google.maps.Marker({
position: pos,
map: map,
icon: '//...icon.png'
});
var infowindow = new google.maps.InfoWindow({
content: data[i].Name
});
//infowindow.open(map, markers[i]); - this shows all infowindows..
//Something wrong with this click event
google.maps.event.addListener(markers[i], 'click', function() {
infowindow.open(map, markers[i]);
});
}
};
var映射;
函数initMap(){
var mapProp={
中心:新google.maps.LatLng(-22133),
缩放:4,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map'),mapProp);
}
var request=new XMLHttpRequest();
request.open('GET','https://...",对),;
request.onload=函数(){
如果(request.status>=200&&request.status<400){
//成功!
var data=JSON.parse(request.responseText);
追加数据(data.data);
控制台日志(数据,“收到的数据”);
}否则{
//我们到达了目标服务器,但它返回了一个错误
}
};
request.onerror=函数(){
//出现了某种连接错误
};
request.send();
函数追加数据(数据){
var标记=[];
对于(变量i=0;i
一切正常都解决了。为标记添加了说明和id,并单击事件触发此
markers[i] = new google.maps.Marker({
position: pos,
map: map,
icon: 'icon.png',
description:"<div style='text-transform:uppercase;'><h6 style='color:red'>" + data[i].Name + "</h6>" + data[i].Description + "</div>",
id: i
});
google.maps.event.addListener(markers[i], 'click', function () {
infowindow.setContent(markers[this.id].description);
infowindow.open(map, this);
});
markers[i]=新的google.maps.Marker({
职位:pos,,
地图:地图,
图标:“icon.png”,
说明:“+数据[i]。名称+”+数据[i]。说明+”,
id:我
});
google.maps.event.addListener(标记[i],'click',函数(){
setContent(标记[this.id].description);
打开(地图,这个);
});
感谢您发布此+1