谷歌地图API所有信息窗口不显示



我的JS有一个小问题,

当我悬停所有不同的标记时,它们没有显示我认为我明白为什么,但我不知道如何解决它

所以有我的代码:

for (var i = 0; i < latLng.length; i++) {
    var mark = new google.maps.Marker({
        map: map,
        animation: google.maps.Animation.DROP,
        position: latLng[i]
    });
    var info = new google.maps.InfoWindow({
        content: contentString[i]
    });
    mark.addListener('mouseover', function() {
        info.open(map, mark);
        setTimeout(function() {infowindow.close()}, 5000);
    })
    mark.addListener('click', function() {
        map.setZoom(15);
        map.setCenter(myLatLng);
    });
}

latLng是一个包含{lat: alatitude, long: alongitude}和 contentString 是一个数组,其中包含类似"hello"的项目它向我显示所有标记,但它仅在我的最后一个标记上显示信息窗口

我认为这是因为我的变量被下一个变量删除了我尝试使用像 down 这样的数组,但它不起作用。

for (var i = 0; i < latLng.length; i++) {
    var marks = new Array();
    var infos = new Array();
    marks.push(new google.maps.Marker({
        map: map,
        animation: google.maps.Animation.DROP,
        position: latLng[i]
    }));
    infos.push(new google.maps.InfoWindow({
        content: contentString[i]
    }));
    marks[i].addListener('mouseover', function() {
        infos[i].open(map, marks[i]);
        setTimeout(function() {infowindow.close()}, 5000);
    })
    marks[i].addListener('click', function() {
        map.setZoom(15);
        map.setCenter(myLatLng);
    });
}

我将这部分隔离在一个函数中,它可以工作:

var mark = new google.maps.Marker({
        map: map,
        animation: google.maps.Animation.DROP,
        position: latLng[i]
    });
    var info = new google.maps.InfoWindow({
        content: contentString[i]
    });
    mark.addListener('mouseover', function() {
        info.open(map, mark);
        setTimeout(function() {infowindow.close()}, 5000);
    })
    mark.addListener('click', function() {
        map.setZoom(15);
        map.setCenter(myLatLng);
    });

相关内容

  • 没有找到相关文章

最新更新