6

我正在使用谷歌地图 V3 API。我在地图上添加了一个自定义控件。它的宽度为 350 像素,高度为 300 像素。当我在地图上打开 infoWindow 时,自定义控件将与 infoWindow 重叠。

有没有办法将 infoWindow 放在自定义控件之上?

4

4 回答 4

3

如果您的问题中没有一些代码可以证明您的问题,我们或多或少只是在猜测您的问题是什么。

查看参考文档google.maps.MapPanes告诉我们 InfoWindow 位于最顶层,但不清楚它们 google.maps.Map.controls属于哪个窗格。

根据设计,您尝试做的事情可能是不可能的。我想说这是谷歌地图团队的一个有目的的决定,以确保地图控件永远不会被遮挡。

于 2013-07-12T14:43:55.880 回答
1

我遇到了类似的问题。如上所述 - 尽管有使用自定义叠加的解决方案,但无法使用自定义控件来做到这一点。

SO的这个答案应该提供足够的信息来解决这个问题。那里的解决方案在标记上方显示叠加,但以相同的方式显示在InfoWindow图层下方。

于 2016-05-05T11:39:14.473 回答
0

将地图(包括信息窗口)推到信息窗口打开的控件前面,并在关闭时将其拉回。

CSS:

.infoopen div[aria-label="Map"]{
 z-index:1!important;
}

js:

 google.maps.event.addListener(marker, 'click', function(event) {
  if(!infowindows[marker.myOwnTarget].anchor) var openme=true;

  $.each(markers,function(){
   infowindows[this.myOwnTarget].close();
   // show controls and legend on infowindow closing by clicking any marker
   $(".map").removeClass("infoopen");
  });

  if(openme){
   infowindows[marker.myOwnTarget].open(thamap, marker);
   // hide controls and legend on info open
   $(".map").addClass("infoopen");

   google.maps.event.addListener(infowindows[marker.myOwnTarget], 'closeclick', function () {
    // show controls and legend on close click
    $(".map").removeClass("infoopen");
   });
  }
 });
于 2021-03-31T10:22:30.123 回答
-1

您问过“有什么方法可以将 infoWindow 放在自定义控件之上?”,如果我正确理解了您的问题,那么您需要将 z-index 添加到您的 infowindow 属性中,以将其显示在客户控件的上方/顶部。

您可以添加以下代码来实现此目的。

var infowindow = new google.maps.InfoWindow({ 
        zIndex: 1000
      });
于 2013-07-12T14:50:37.463 回答