2013-12-11 2 views
0

У нас есть хорошее приложение Rails, работающее с использованием старых gmaps4rails. Я, наконец, попытался обновить новый v2, и кажется, что он плохо документирован и отсутствует.gmaps4rails v2 mig ... где все? (особенно боковая панель)

Sidebars

Куда делся врезки? В источнике или примерах нет ссылки на него. Раньше у меня в контроллере было marker.sidebar "#{shop.name} - #{shop.location}". Это делает исключение.

Опции

Я думаю, что этот материал там, но нет примеров больше. Как воссоздать то, что это сделал:

<%= gmaps("map_options" => { 
        "auto_adjust" => false, 
        "auto_zoom" => false, 
        "zoom" => 6, 
        "bounds" => '[{"lat": 54, "lng": 6 }, {"lat": 48 , "lng": 15 }]' 
       }, 
       "markers" => { 
        "data" => @json, 
        "options" => {"list_container" => "markers_list", "randomize" => false, "max_random_distance" => 10000 } 
       }) %> 

Я могу понять, zoom, но все остальное, кажется, сильно отличается.

+0

https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Why-but-why%3F – apneadiving

+0

I предположим, что комментарий означает, что все эти вещи больше не поддерживаются. – phil

+0

да, но многое из этого легко выполнимо, просто не касалось карты. Скажите мне, если вам нужна помощь. – apneadiving

ответ

2

пример, чтобы получить боковую панель обратно с чистыми ЯШ:

@hash = Gmaps4rails.build_markers(@shops) do |shop, marker| 
    marker.lat shop.latitude 
    marker.lng shop.longitude 
    marker.title shop.name 
    marker.json({ 
     id:  shop.id, 
     country: "random", 
     name:  shop.name, 
     location: shop.location 
    }) 
    end 

    $(document).ready(function(){ 
    var raw_markers = <%=raw @hash.to_json %>; 
    var gmaps_markers; 

    function createSidebarLi(shop_json) { 
     return ("<li><a>" + shop_json.name + " - " + shop_json.location + "<\/a></li>"); 
    }; 

    function bindLiToMarker($li, marker){ 
     $li.click(function(){ 
     marker.panTo(); //to pan to the marker 
     google.maps.event.trigger(marker.getServiceObject(), "click"); // to open infowindow 
     }); 
    }; 

    function createSidebar(){ 
     for (var i=0;i<raw_markers.length;i++){ 
     var $li = $(createSidebarLi(raw_markers[i])); 
     $li.appendTo($('#markers_list')); 
     bindLiToMarker($li, gmaps_markers[i]); 
     } 
    }; 

    handler = Gmaps.build('Google', {markers: { maxRandomDistance: 10000} }); 
    handler.buildMap({ provider: {zoom: 6}, internal: {id: 'map'}}, function(){ 
     gmaps_markers = handler.addMarkers(raw_markers); 
     handler.map.centerOn({ lat: 51, lng: 11 }); 
     createSidebar(); 
    }); 
    }); 
+0

Не помогает ли это? – apneadiving

+0

Извините - сегодня мы прошли отслеживание ... Я посмотрю на завтра. Это выглядит хорошо, хотя, спасибо очень. Я считаю, что в v1 у вас был пример боковых панелей, поэтому было бы неплохо привести пример в вики v2. – phil

+0

Просто сделал быстрый запуск ... он всегда использует последний маркер. У меня есть боковая панель со всем, но щелчок, кажется, использует только последний маркер в списке ... $ li - это не массив, поэтому я думаю, что только последний из них на месте. – phil

Смежные вопросы