Maps 如何为自定义覆盖添加信息窗口?

Maps 如何为自定义覆盖添加信息窗口?,maps,overlay,infowindow,Maps,Overlay,Infowindow,我已经实现了一个自定义覆盖。我想添加一个事件,当我单击覆盖时,它将弹出一个信息窗口 function initMap() { var map = new google.maps.Map(document.getElementById('okmap'), { zoom: 4, center: {lat: 35.0000, lng: 103.0000} }); for (var n in nodes) { var myMarker = new MyMarke

我已经实现了一个自定义覆盖。我想添加一个事件,当我单击覆盖时,它将弹出一个信息窗口

function initMap() {
  var map = new google.maps.Map(document.getElementById('okmap'), {
    zoom: 4,
    center: {lat: 35.0000, lng: 103.0000}
  });

  for (var n in nodes) {
      var myMarker = new MyMarker(map, {latlng: new google.maps.LatLng(nodes[n][0], nodes[n][1]), 
                                    image: 'assets/img/light-green.png',
                                    labelText: (Math.random() * 100).toFixed(0)});
      markers.push(myMarker);
      var infowindow = new google.maps.InfoWindow({
          content: n
      });
      myMarker.addListener('click', function() {
          infowindow.open(map, myMarker);
      });
  }
}

但它不起作用

不久前,我遇到了一个类似的问题。这里有两件事帮助了我。 我认为主覆盖元素是一个
div

MyMarker.draw
函数中,确保您使用的窗格可以访问DOM事件

    var panes = this.getPanes();
    panes.overlayMouseTarget.appendChild(div);
有关更多详细信息,请参阅

确保在
MyMarker.draw
函数中定义事件侦听器

google.maps.event.addDomListener(div, "click", function(event) {
    google.maps.event.trigger(self, "click");
});

我在marker draw函数中添加了infoWindow函数,我正在将自定义div作为标记绘制。它正在显示信息窗口,但其位置受到干扰。