Search code examples
rubyruby-on-rails-4gmaps4rails

Gmaps4rails get marker detail when click on particular marker on map in ruby on rails4


Hey i am looking for get vnote_id from marker parameter.Now i always get last vnote_id of all marker when i click on particular marker on map

i can not access here marker.vnote_id only i can access marker.title

Controller Code

@vnote_hash = Gmaps4rails.build_markers(@vnote) do |vnote, marker|
marker.lat vnote.latitude
marker.lng vnote.longitude
marker.title vnote.id.to_s
marker.json({vnote_id: vnote.id })

View Code

handler = Gmaps.build('Google'); 

handler.buildMap({ provider: { minZoom: 3, maxZoom: 200,zoom: 5,scrollwheel: false }, internal: {id: 'map'}}, function(){
        var marker, _i, _len;
        markers = handler.addMarkers(<%=raw @vnote_hash.to_json %>);
        handler.bounds.extendWith(markers);
        handler.fitMapToBounds();
        for (_i = 0, _len = markers.length; _i < _len; _i++) {

            marker = markers[_i];

            google.maps.event.addListener(marker.getServiceObject(), 'click', function(evt) {

                $.get('http://localhost:3000/vnote/popup_vnote_info', { vnote_id: marker.getServiceObject().title });


                return console.log(handler.getMap().getBounds().getNorthEast().toString());

            });             
        }
});

Solution

  • all your json is in <%=raw @vnote_hash.to_json %>

    So:

    var raw_json = <%=raw @vnote_hash.to_json %>;
    markers = handler.addMarkers(raw_json);
    

    And in your loop:

    raw_json[i].vnote_id
    

    An alternative is to merge object properties so you only use one object.