gpt4 book ai didi

javascript - 如何通过数组获取多个值并在 Google map 中显示此地点?

转载 作者:太空宇宙 更新时间:2023-11-04 16:31:02 25 4
gpt4 key购买 nike

我正在开发一个项目,在基于 NodeJS 的 Meteor 中,我需要通过 Google Maps API 在 map 上创建“标记”(地点)。这些标记位于“列表”数组中

var list = Offers.find({});

list = [
{
place: "Teste2",
offer: "Teste Offer2",
loc: {
coordinates: [-50.1681836, -25.0869446]
}
},
{
place: "Teste1",
offer: "Teste Offer1",
loc: {
coordinates: [-40.1681836, -20.0869446]
}
}];

并且这些各自的位置必须显示在 map 上,每个位置都有其各自的标记...

var count = 0;
list.forEach(function(offer) {
console.log(offer);
// Animation Timeout
setTimeout(function() {
// Create the string into the infowindow
var contentString = '<p><strong>' + offer.place + '</strong></p>' +
'<p>' + offer.offer + '</p>';

// Create the infowindow object
var infowindow = new google.maps.InfoWindow({
content: contentString
});

// Add the marker on the map
var marker = new google.maps.Marker({
position: {lat: offer.loc.coordinates[1], lng: offer.loc.coordinates[0]},
map: map.instance,
animation: google.maps.Animation.DROP
});

// Add the infowindow for each marker
marker.addListener('click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
}, count * 200);

count++;
});

但是,刚刚显示的只是第一个数组位置(“Teste2”),而不是“list”的所有多个值。

最佳答案

可能是因为您正在使用 infowindow没有任何声明的变量。

marker.addListener('click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
});

在设置标记监听器之前在循环中创建一个 infowindow 对象,如下所示:

let infowindow = new google.maps.InfoWindow({
content: contentString
});

More information in the Google Maps API documentation

编辑

也更改这些行

list.forEach(function(offer, index) {   //  <--- change for index
console.log(offer);
// [...]

// Add the infowindow for each marker
marker.addListener('click', function() {
infowindow.setContent(contentString); // <--- remove this one
infowindow.open(map, marker); // <--- map or map.instance ??
});

// Animation Timeout
setTimeout(function() {
// [...]
}, index * 200); // <--- change for index
});

之后,您可以删除所有 count引用文献。

对于infowindow.open(map, marker)map引用应该与标记相同。

变量 new google.maps.Map() 是什么?是 ? map.instancemap

关于javascript - 如何通过数组获取多个值并在 Google map 中显示此地点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809422/

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