在Google地图中将信息框与标记对齐

时间:2012-05-07 01:13:02

标签: google-maps gmaps4rails marker infowindow

我正在使用InfoBox插件,我有以下代码:

Gmaps.map.infobox = function(boxText) {
  return {
     content: boxText
    ,disableAutoPan: false
    ,maxWidth: 0
    ,pixelOffset: new google.maps.Size(-140, 0)
    ,zIndex: null
    ,boxStyle: {
      background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/examples/tipbox.gif') no-repeat"
      ,opacity: 0.75
      ,width: "280px"
       }
    ,closeBoxMargin: "10px 2px 2px 2px"
    ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
    ,infoBoxClearance: new google.maps.Size(1, 1)
    ,isHidden: false
    ,pane: "floatPane"
    ,enableEventPropagation: false
 }};

使用尺寸为77x80像素的标记,当显示InfoWindow时,它会在标记的底部正确对齐,如下所示:

Big Marker with Infobox well aligned

但是,如果我将标记的大小更改为35x44像素,则InfoWindow不会完全对齐标记的底部,如下所示:

Small Marker with Infobox wrong aligned

有关如何在底部完全对齐的任何想法?

编辑:对于小标记,我通过在我使用的库中设置它来创建它们(gmaps4rails):

marker.picture({
                  :picture => "assets/juice-pin-small.png",
                  :width => 35,
                  :height => 44,
                 })

对于大标记,我通过设置它来创建它们:

marker.picture({
                      :picture => "assets/juice-pin-small.png",
                      :width => 70,
                      :height => 88,
                      :marker_anchor => [23,78]
                     })

1 个答案:

答案 0 :(得分:0)

我所知道的绝对不是最佳解决方案,因为如果您使用两种尺寸的标记,则需要两组选项。

无论如何,可以使用pixelOffset: new google.maps.Size(-140, 0);更改信息框的位置,在您的情况下,向左移动框,使第一个数字更负(例如,-145)。

想到别的东西:编辑标记本身并将其移动几个像素。