2009-07-29 1 views
2

J'essaie de mettre les critiques de mes amis sur une carte (voir le prototype au http://eatrichly.heroku.com/). L'idée est que lorsque vous cliquez sur un marqueur, vous devriez voir la revue du restaurant. Malheureusement, la fenêtre contextuelle qui apparaît lorsque vous cliquez sur un marqueur n'est pas suffisamment grande pour permettre la révision correspondante. Par exemple:Comment rendre mes superpositions Google Maps plus grandes (dans Rails)

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

Voici mon code:

Dans le contrôleur:

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 

De l'avis:

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

Comment puis-je faire l'info les fenêtres correspondent au texte qu'elles contiennent dans?

+0

J'ai remarqué que vous avez toujours ce problème sur votre page. Essayez ma réponse - cela fonctionne garanti - ou remboursé! –

+0

Ça a été une semaine chargée, mais je vais essayer votre réponse dès que j'aurai du temps libre (j'ai aussi un vrai travail!) –

Répondre

3

Il s'agit d'un problème assez courant rencontré par les développeurs Google Maps. Les réponses à la question suivante couvrent les différentes solutions:

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

Pour résumer:

  • Vous devez définir l'attribut de la hauteur sur les images (non applicable dans ce cas).
  • Vous devez vous assurer que vos éléments InfoWindow HTML ne sont pas héritant des styles CSS à partir du document qui changent leur hauteur (Inherited CSS problem)
2

+1 aux suggestions de canonnade. Cependant, après avoir regardé votre code et avoir remarqué que le problème persiste après la suppression de tous les styles, j'ai trouvé le problème ailleurs:

Vous devez définir un sur vos fenêtres d'informations. Pour l'instant, GInfoWindowOptions est vide: {}. Essayez de le changer pour: {maxWidth:400}.

Voici ce que je pense qui se passe: puisque vous n'avez pas de largeur maximale, Google Maps décide que la fenêtre n'a pas besoin d'être très grande, puisque votre contenu ira horizontalement. Cependant, en pratique, la fenêtre d'information a vraiment une largeur maximale - mais elle n'est pas prise en compte dans le calcul initial, de sorte que votre texte finit par déborder.

+0

Merci Chris, c'est quelque chose que je ne connaissais pas. Je vais l'ajouter à ma liste de choses à voir quand mes infoWindows ne fonctionnent pas;). – RedBlueThing