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作为标记绘制。它正在显示信息窗口,但其位置受到干扰。