0

我正在从谷歌地图 api v2 迁移到 v3。在 v2 中,我们有一个自定义的工具提示覆盖,类似于 v3 中的标题。我想摆脱自定义叠加层,因为它在 v3 中无论如何都不能正常工作,并且作为标题维护起来会更简单。问题是我在地图之外有一些片段,它们在与之交互时会显示工具提示。我认为我可以让标题显示如下:

   showTooltip: function(i) {
      var marker = i && this.MARKERS ? this.MARKERS[i] : this.marker;
      if (!marker.infoWindowOpen) {
         google.maps.event.trigger(marker, 'mouseover', {ltLng: marker.getPosition()});
      }
   }

但是标题没有显示。这个想法是模拟鼠标悬停在标记上,以便显示标题。

4

1 回答 1

1

这就是我进行切换以打开和关闭字幕的方式,我认为您可以使用相同的方法:

body .gmnoprint[title] { 
    overflow: visible !important; 
    width: auto  !important; 
    background: transparent;
    opacity: 1  !important; 
}


body[data-captions='true'] .gmnoprint[title*="^"]:after {
    background: none repeat scroll 0 0 rgba(255, 255, 255, 0.85);
    content: attr(title);
    display: block;
    font-size: 90%;
    left: 0em;
    padding: 0em 0.6em;
    position: relative;
    top: 1em;
    white-space: pre;
    width: auto;
    border-radius: 1em;
    vertical-align: top;
    color: #000;
    font-weight: bold;
    font-family: sans-serif;
    text-shadow: 0 0 1px #fff, 0 0 3px #fff;
    opacity: 0.75;
}

然后你可以切换 body 标签 data-captions 属性来打开和关闭字幕。

它使用 CSS 来显示标题,通常无法编写脚本来显示,但使用 CSS 生成内容的魔力,我们可以以有吸引力和可定制的方式显示标题信息。

我相信代码命中了一个标记,不确定这是否是你所拥有的,但它应该能够处理任何带有标题的东西。

就我而言,标题在此(如果需要,可以是透明的):

   var marker = new google.maps.Marker({
          position: pos,
          map: map,
          icon: {
              path: 0,
              scale: 3,
              fillColor: spot.color,
              strokeWeight: 8,
              strokeColor: spot.color,
              fillOpacity: 1,
              strokeOpacity: 0.333
          },
         title: "^ "+spot.name
    });
于 2013-11-06T21:37:04.280 回答