An example to get your sidebar back with clean js:
@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();
});
});