Javascript 将Infowindow添加到每5秒刷新一次的阵列标记Google map
我按照这个示例()在地图上每隔5秒刷新标记的位置。现在,我不明白如何使用不同的变量(不包括时间和地理位置,也不包括Beads数组的第5个元素)向每个标记添加信息窗口Javascript 将Infowindow添加到每5秒刷新一次的阵列标记Google map,javascript,arrays,google-maps,google-maps-api-3,infowindow,Javascript,Arrays,Google Maps,Google Maps Api 3,Infowindow,我按照这个示例()在地图上每隔5秒刷新标记的位置。现在,我不明白如何使用不同的变量(不包括时间和地理位置,也不包括Beads数组的第5个元素)向每个标记添加信息窗口 var映射; 变量标记=[];//创建一个标记数组来保存标记 函数初始化(){ 变量映射选项={ 缩放:5, 中心:新google.maps.LatLng(10,12), mapTypeId:google.maps.mapTypeId.SATELLITE } map=new google.maps.map(document.getE
var映射;
变量标记=[];//创建一个标记数组来保存标记
函数初始化(){
变量映射选项={
缩放:5,
中心:新google.maps.LatLng(10,12),
mapTypeId:google.maps.mapTypeId.SATELLITE
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
设置标记(泳滩);;
//在按钮上绑定事件侦听器以重新加载标记
//document.getElementById('reloadMarkers')。addEventListener('click',reloadMarkers');
}
var n=0;
setInterval(函数重载标记(){
n++;
var海滩=[
['Bondi Beach',10+n,10+n,5],
['Coogee Beach',北纬10度,北纬11度,北纬5度],
[‘克罗努拉海滩’,北纬10度,北纬12度,北纬3度],
[“曼利海滩”,北纬10度,北纬13度,2度],
['Maroubra Beach',10,14,1]
];
//循环遍历标记,并将每个标记的映射设置为null
对于(var i=0;i在SetMarkers()中定义infowindow变量)
var infowindow=new google.maps.infowindow()
这是addListener()的一部分
工作示例
您的问题中没有添加信息窗口的代码。您尝试了什么(我想您已经看到了)?您遇到了什么问题?您的代码没有显示向地图添加信息窗口的尝试。有足够多的教程和文档可以轻松回答您的问题。我已经编辑了我的测试,添加google.maps.event.addListener(标记“单击”)后,该测试不起作用你能告诉我一个这样做的教程吗?你甚至检查了第一条注释中的链接吗?那里的第一个代码示例向你展示了如何做到这一点!是的,我确实检查了,但这是针对单个标记的,我不明白如何将该示例准确地集成到一个数组中。
var map;
var markers = []; // Create a marker array to hold your markers
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(10,12),
mapTypeId: google.maps.MapTypeId.SATELLITE
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
setMarkers(beaches);
// Bind event listener on button to reload markers
//document.getElementById('reloadMarkers').addEventListener('click', reloadMarkers);
}
var n = 0;
setInterval(function reloadMarkers() {
n++;
var beaches = [
['Bondi Beach', 10+n, 10+n, 5],
['Coogee Beach', 10-n, 11-n, 5],
['Cronulla Beach', 10-n, 12+n, 3],
['Manly Beach', 10+n, 13-n, 2],
['Maroubra Beach', 10, 14, 1]
];
// Loop through markers and set map to null for each
for (var i=0; i<markers.length; i++) {
markers[i].setMap(null);
}
// Reset the markers array
markers = [];
// Call set markers to re-add markers
setMarkers(beaches);
var infowindow = new google.maps.InfoWindow({
content: "infowindowstringg"
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}, 5000);
function setMarkers(locations) {
for (var i = 0; i < locations.length; i++) {
var beach = locations[i];
var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
animation: google.maps.Animation.DROP,
title: beach[0],
zIndex: beach[3]
});
google.maps.event.addListener(marker, 'click', )
// Push marker to markers array
markers.push(marker);
}
}
initialize();
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(beaches[i][0]);
infowindow.open(map, marker);
}
})(marker, i));