Infowindow仅在谷歌地图上的一个引脚上打开,有多个引脚

时间:2017-01-11 12:33:26

标签: javascript google-maps

我搜索了类似的问题,但没有找到,如果我错过了一个道歉。

我正在尝试学习创建最近点击的针脚上显示的信息窗口的功能,并提取相关信息。

问题在于,无论我点击哪个针脚,infowindow总会出现在同一个针脚上('酷事件5'在下面的代码中)。

var locations = [
  ['Cool event 1', 33.890542, 151.274856, 'address 1'],
  ['Cool event 2', 33.923036, 151.259052, 'address 2'],
  ['Cool event 3', 34.028249, 151.157507, 'address 3'],
  ['Cool event 4', 33.80010128657071, 151.28747820854187, 'address 4'],
  ['Cool event 5', 33.950198, 151.259302, 'address 5']
];

我猜测它是标记代码的问题:

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

var marker = new google.maps.Marker({
  position: latlngset,
  map: map,
  title: event
  });

可以在this jsfiddle

中找到完整代码

的Ta!

编辑:我上传了错误版本的jsfiddle,现已修复

1 个答案:

答案 0 :(得分:0)

编辑:像这样:http://jsfiddle.net/7yceq7jq/

在onClick功能中,您必须指定(由客户端)点击了哪个标记。

这是一种方式:

<script>
var markers = [];  // put this global, or at least make sure the variable is accessible to the rest of your code
...
var marker = new google.maps.Marker({
...
});
// now push this marker on the array
markers.push(marker);
... 
marker.addListener('click', function(e) {
  var index = markers.indexOf(this);  // if index = 0 => first marker; ...
  // set content
  infowindow.setContent = locations[index][0] ; // this adds the name of the location, feel free to add more stuff 
  infowindow.open(map, markers[index]);
})
</script>     

让我知道它是否有效