gpt4 book ai didi

javascript - 尝试设置谷歌地图信息窗口内容的问题

转载 作者:行者123 更新时间:2023-11-29 15:33:45 25 4
gpt4 key购买 nike

所以我有几个标记从一个数组中出现,但是我在设置出现的 InfoWindows 的内容时遇到了很多困难

我把标题放在其中效果很好,但是当我尝试设置内容时,它没有设置内容,但仍然显示标题。

我做错了什么?

for (index = 0; index < data.length; ++index) {
locationName = data[index].LocationName;
locationID = data[index].LocationID;
locationX = data[index].XCord;
locationY = data[index].YCord;
var infoContent = '<div><h3>' + data[index].LocationName + '</h3></div><div>' + data[index].LocationID + '</div>';
var mapLocation = new google.maps.LatLng(locationX,locationY);
var marker = new google.maps.Marker({ // Set the marker
position: mapLocation, // Position marker to coordinates
icon: image, //use our image as the marker
map: map, // assign the marker to our map variable
title: data[index].LocationName,
content: infoContent
//draggable:true //Have a guess what this does
});

// Allow each marker to have an info window
google.maps.event.addListener(marker, 'click', (function (marker, index) {
return function () {
infoWindow.setContent(infoContent);
infoWindow.setContent(this.title);
infoWindow.open(map, this);
}
})(marker, index));

var infoWindow = new google.maps.InfoWindow({
content: infoContent
}), marker, index;
}

最佳答案

你正在调用 setContent 两次:

infoWindow.setContent(infoContent);
infoWindow.setContent(this.title);

我想应该删除最后一个。

编辑:

要获得正确的 infoWindow 内容,请尝试将 eventListener 的创建移动到一个函数中:

// Allow each marker to have an info window    
updateInfoWindowOnMarkerClick(marker, infoContent);

//Somewhere after the loop
function updateInfoWindowOnMarkerClick(marker, infoContent){
google.maps.event.addListener(marker, "click", function () {
infoWindow.setContent(infoContent);
infoWindow.open(map, this);
});
}

看看JavaScript closure inside loops – simple practical example有关功能范围的更多信息。

关于javascript - 尝试设置谷歌地图信息窗口内容的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31776068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com