2013-08-26 2 views
1

Peut-être que c'est un cas des lundis mais j'ai un moment vraiment difficile avec infowindows et la gemme Google Maps for Rails. Est-ce que quelqu'un connaît un tutoriel ou un exemple?Exemple de fenêtre d'information Google Maps for Rails

Tout ce que je veux faire est de configurer un infowindow par défaut à ouvrir lorsque vous cliquez sur un marqueur. J'ai compris que je devais faire une partie et définir les options sur la carte, mais je n'arrive pas à tout rassembler.

Merci!

Répondre

1

Nevermind, il a finalement cliqué. Voici mon code pour un exemple de base, j'espère que cela aidera quelqu'un d'autre dans le futur.

modèle de localisation

class Location < ActiveRecord::Base 
    include Rails.application.routes.url_helpers 

    default_scope order('locations.id ASC') 

    acts_as_gmappable 

    attr_accessible    :name, 
           :address, 
           :city, 
           :province, 
           :postal_code, 
           :country, 
           :phone, 
           :ext, 
           :phone_alt, 
           :ext_alt, 
           :latitude, 
           :longitude 

    geocoded_by     :address 

    validates_presence_of   :name 
    validates_presence_of   :address 
    validates_presence_of   :city 
    validates_presence_of   :province 
    validates_presence_of   :postal_code 
    validates_presence_of   :country 


    after_validation    :geocode, :if => :address_changed? 

    def gmaps4rails_address 
    #describe how to retrieve the address from your model, if you use directly a db column, you can dry your code, see wiki 
    "#{self.address}, #{self.city}, #{self.country}" 
    end       
end 

contrôleur de localisation

class LocationsController < ApplicationController 

    def show 
    @location = Location.find(params[:id]) 
    @json = @location.to_gmaps4rails do |location, marker| 
     marker.infowindow render_to_string(:partial => "/layouts/partials/infowindow", :locals => { :location => location}) 
    end 

    respond_to do |format| 
     format.html 
    end 
    end 
end 

InfoWindow partielle (haml)

.location-data{id: location.id} 
    .location-name 
    = location.name.capitalize 
    .location-address 
    = location.address.capitalize 
    .location-city= location.city.capitalize 
    .location-province 
    = location.province.capitalize 
    .location-postal-code 
    = location.postal_code 
    .location-country 
    = location.country 
    .location-phone 
    = location.phone 
    .location-extension 
    = location.ext 
    .location-alt-phone 
    = location.phone_alt 
    .location-alt-phone-extension 
    = location.ext_alt 

afficher la vue (haml)

#map-column 
    %h1 
    Find a retailer near you 

    = gmaps("markers" => {"data" => @json, "options" => {"link_container" => "map_link_" } }) 
Questions connexes