当在轨道4上的红宝石上点击地图上的特定标记时,Gmaps4rails会获得标记细节

时间:2014-11-01 04:37:05

标签: ruby ruby-on-rails-4 gmaps4rails

嘿,我正在寻找从marker参数获取vnote_id。现在,当我点击地图上的特定标记时,我总是得到所有标记的最后一个vnote_id

我无法访问此标记.vnote_id只能访问marker.title

控制器代码

@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 })

查看代码

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());

            });             
        }
});

1 个答案:

答案 0 :(得分:1)

你所有的json都在<%=raw @vnote_hash.to_json %>

所以:

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

在你的循环中:

raw_json[i].vnote_id

另一种方法是合并对象属性,以便只使用一个对象。