向动态气泡添加动态信息

时间:2017-03-27 13:20:10

标签: javascript

我知道我的问题可能看似重复,但事实并非如此。有不同的方法来做它我喜欢我的代码...我的代码主要工作,我只想找出infowindow内容部分。,而不是重写它。

我正在循环查看商家列表并在地图上绘制标记。一切正常,直到我添加infowindow,点击打开。虽然我能够在正确的点旁边打开它,但内部的值始终属于最新的地图标记。我该如何解决这个问题?

for (var i = 0; i < restaurants.length; i++) {
    var restaurant = restaurants[i];
    var customlabl = (restaurant[5] != 0 ? "$"+restaurant[5] : false );
    var customtitl = (restaurant[5] != 0 ? restaurant[0]+" -- "+restaurant[5] : restaurant[0]);

    var infowindow = new google.maps.InfoWindow({
        content: customtitl
    });

    var marker = new google.maps.Marker({
        position: {
            lat: restaurant[1], 
            lng: restaurant[2]
        },
        map: map,           
        title:  customtitl,
        label:  customlabl
    });
    marker.addListener("click", function() {
        infowindow.open(map, this);
    });
    bounds.extend(marker.getPosition());
}
map.fitBounds(bounds);

在上面的代码中,我能够正确打开infowindow。所以,我现在修改它以从标记中选择标签或标题到内容。

marker.addListener("click", function() {
    var infowindow = new google.maps.InfoWindow();
    infowindow.content(title, this);
    infowindow.open(map, this);
});

由于某种原因,这会破坏功能,并且信息不会再打开。有什么遗漏?

1 个答案:

答案 0 :(得分:1)

内容未在google.maps.InfoWindow中定义,但在InfoWindowOptions对象中定义。

为了使其工作,请尝试将其更改为:

marker.addListener("click", function() {
  let infoOptions = {
    content: 'hello world'
  };

  let infowindow = new google.maps.InfoWindow(infoOptions);
  infowindow.open(map, this);
});

let infowindow = new google.maps.InfoWindow({content: 'hello world'});