2012-05-06 1 views
1

В настоящее время я пытаюсь подключить backbone.js и gmaps4rails вместе с моим проектом rails, но у меня возникают проблемы с инициализацией карты.Инициализация карт backbone.js и gmaps4rails

У меня есть сообщения журнала, чтобы увидеть, что мой Маршрутизатор работает, и представление достигнуто с основной стороны. Теперь я нахожусь в моем базовом файле и пытаюсь инициализировать оболочку Gmaps4RailsGoogle.

В моих рельсам посмотреть, я genereating дивы для gmaps4rails так:

<%= content_tag "div", class: "map_container" do %> 
    <%= content_tag "div", id: "map" do %> 
    <% end %> 
<% end %> 

я не могу загрузить карты на мой взгляд, вот код:

console.log "Loading map..." 
    Gmaps.map = new Gmaps4RailsGoogle() 
    Gmaps.load_map = -> 
    Gmaps.map.map_options.auto_adjust = true 
    Gmaps.map.initialize() 
    Gmaps.map.markers markers 
    Gmaps.map.markers_conf.do_clustering = true 
    Gmaps.map.create_markers() 
    Gmaps.map.adjustMapToBounds() 
    Gmaps.map.callback() 

    Gmaps.loadMaps() 

Я знаю, что вызов loadMaps() должен быть загружен, но похоже, что это уже произошло. Где я должен это разместить?

Я вижу в журнале, но на консоли она говорит мне следующее сообщение об ошибке:

google is not defined 
http://localhost:3000/assets/gmaps4rails/gmaps4rails.googlemaps.js?body=1 
Line 74 

Можно ли позволить gmaps4rails genereate весь необходимый сценарий включает в себя, а затем получить доступ к переменным, предусмотренные внутри Backbone.js?

Пожалуйста, дайте мне знать, какая информация потребуется, если этого недостаточно.

Спасибо, Kjellski

+0

Я теперь просто использовал '<% = Gmaps ({ "map_options"=> { "масштаб"=> 15, "auto_adjust"=> ложный, "detect_location"=> правда, "center_on_user" => true}}, false, true)%> 'в моем index.html.erb для создания правильных div и загрузки googlescripts. И отредактировал coffeescript, чтобы просто установить маркеры так, как это 'Gmaps.map.addMarkers @ collection.model Gmaps.map.showMarkers()' Но, тем не менее, почему бы это не скомпилировать js (после исправления отступа)? – Kjellski

+0

В соответствии с тем, что вы описали, кажется, что js api google не загружается. Он включен в вашу страницу? BTW, нет никакой несовместимости между gmaps4rails и любой js-библиотекой. – apneadiving

+0

Sidenote, если у вас есть только одна карта 'Gmaps.loadMaps()' эквивалентна 'Gmaps.load_map()', и не обязательно запускать ее при загрузке страницы. – apneadiving

ответ

1

Я нашел ответ на этот вопрос, или, по крайней мере, его часть. Я сейчас, используя следующий вызов gmaps в моей index.html.erb зрения с рельсов:

<%= gmaps({ "map_options" => { "zoom" => 15, 
           "auto_adjust" => true, 
           "detect_location" => true, 
           "center_on_user" => true }}, false, true) %> 

Это создаст необходимый объект Gmaps, который я на самом деле, используя от позвоночника в настоящее время. Мой шаблон шаблона базы теперь пуст, который чувствует себя не так. Чтобы сделать это правильно, мне нужно будет настроить googlemaps изнутри моего позвоночника. До сих пор я не нашел для этого хорошего ответа, но он работает так. На моем взгляде, я установить Initialize для прослушивания на сбросе сбора и сказал его называть свою функцию, чтобы добавить маркера, как это:

initialize: -> 
    @collection.on('reset', @loadMarkersOnMap, this) 

render: -> 
    ... 

loadMarkersOnMap: -> 
    Gmaps.map.addMarkers @collection.toJSON() 
    Gmaps.map.showMarkers() 

Надеется, что это помогает, если кто-то пытается сделать то же самое. Я также хотел бы добавить решение для перемещения вызовов, чтобы правильно инициализировать Gmaps4RailsX в моих базовых файлах. Какие-либо предложения?

+0

Поскольку никто не придумал другого предложения, я принял свой собственный ответ. Но я хотел бы принять ответ от другого ... – Kjellski