Gmaps4rails получает детали маркера при нажатии на конкретный маркер на карте в ruby on rails4
Эй, я ищу получить vnote_id из параметра маркера. Теперь я всегда получаю последний vnote_id всех маркеров, когда я нажимаю на конкретный маркер на карте
я не могу получить доступ здесь marker.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 ответ
Решение
Все ваши JSON в <%=raw @vnote_hash.to_json %>
Так:
var raw_json = <%=raw @vnote_hash.to_json %>;
markers = handler.addMarkers(raw_json);
И в вашем цикле:
raw_json[i].vnote_id
Альтернативой является объединение свойств объекта, чтобы вы использовали только один объект.