我正在尝试将我朋友的餐厅评论放在地图上(请参阅原型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) %>
如何让信息窗口适合它们包含的文字?
答案 0 :(得分:3)
这是Google Maps开发人员遇到的一个非常常见的问题。以下问题的答案涵盖了各种解决方案:
How to set Google map's marker's infowindow max height?
总结:
答案 1 :(得分:2)
+1给Cannonade的建议。但是,在查看您的代码并注意到在删除所有样式后问题仍然存在之后,我在其他地方发现了问题:
您需要在信息窗口设置maxWidth。现在GInfoWindowOptions为空:{}
。请尝试将其更改为:{maxWidth:400}
。
以下是我认为发生的情况:由于您没有maxWidth,因此Google地图决定该窗口不需要很高,因为您的内容只会横向移动。但是,在实践中,信息窗口确实具有最大宽度 - 但它没有考虑到初始计算中,因此您的文本最终会溢出。