如何让我的Google地图覆盖更高(在Rails中)

时间:2009-07-29 05:06:56

标签: ruby-on-rails google-maps

我正在尝试将我朋友的餐厅评论放在地图上(请参阅原型http://eatrichly.heroku.com/)。我们的想法是,当您点击标记时,您应该看到餐厅的评论。不幸的是,偶尔点击标记时出现的弹出窗口不足以容纳相应的评论。 E.g:

alt text http://img259.imageshack.us/img259/3396/picture4mfy.png

这是我的代码:

在控制器中:

  def index
    @reviews = Review.all
    @map = GMap.new('map')
    @map.control_init(:large_map => true, :map_type => false)
    @map.center_zoom_init([Address.first.lat,Address.first.lng], 13)

    Restaurant.all.each do |r|
      body = %{
        <b><a target="_BLANK" href="#{r.menu_link}">#{r.name}</a></b> (#{r.cuisines.first})
        <br><br>
        #{r.review.body}
      }

      marker = GMarker.new([r.addresses.first.lat, r.addresses.first.lng],
      :title => r.name,
      :info_window => body.strip)
      @map.overlay_init(marker)
    end

在视图中:

<%= GMap.header %>
<%= @map.to_html %>
<%= @map.div(:width => 1024, :height => 1000) %>

如何让信息窗口适合它们包含的文字?

2 个答案:

答案 0 :(得分:3)

这是Google Maps开发人员遇到的一个非常常见的问题。以下问题的答案涵盖了各种解决方案:

How to set Google map's marker's infowindow max height?

总结:

  • 您需要在图像上设置height属性(在这种情况下不适用)。
  • 您需要确保您的infoWindow HTML元素不会从文档中继承任何更改其高度的CSS样式(Inherited CSS problem

答案 1 :(得分:2)

+1给Cannonade的建议。但是,在查看您的代码并注意到在删除所有样式后问题仍然存在之后,我在其他地方发现了问题:

您需要在信息窗口设置maxWidth现在GInfoWindowOptions为空:{}。请尝试将其更改为:{maxWidth:400}

以下是我认为发生的情况:由于您没有maxWidth,因此Google地图决定该窗口不需要很高,因为您的内容只会横向移动。但是,在实践中,信息窗口确实具有最大宽度 - 但它没有考虑到初始计算中,因此您的文本最终会溢出。