Gmaps4Rails v2: как удалить маркер с помощью пользовательского атрибута?

Я, должно быть, упускаю что-то очевидное - я в основном пытаюсь сделать в v2, что, как мне кажется, изложено в [этом SO вопросе], за исключением того, что это не работает в v2. В частности, Gmaps.maps больше не определяется.

Я дошел до того, что решил, что если я сохраню массив данных маркера, который возвращается при вызове addMarkers в обратном вызове buildMaps, я могу использовать элементы этого массива для удаления маркера.

Если я сохраняю пользовательский атрибут в JSON, который я отправил в addMarkers, я могу также удержать этот массив JSON, запросить этот атрибут, найти индекс, а затем спрятать маркер с этим индексом в маркере. массив данных - вот что я имею в виду, в псевдокоде:

json_array=generate_json();
handler.build_map({}, function() { window.marker_data=handler.addMarkers(); });

indexes=find_in_json(json_array, {"type":"hotel"});
marker_data[i].hide() for i in indexes;

Но это означает, что у меня есть одни и те же концептуальные данные в двух местах - есть ли лучший способ сделать это, чтобы избежать управления "моделью" маркера в двух отдельных массивах?

1 ответ

Решение

Я понимаю вашу озабоченность.

Что я делаю, так это объединяю данные в этом случае, проверь http://apneadiving.github.io/ есть пример (проверь раздел боковой панели)

var markers = handler.addMarkers(json_array);

_.each(json_array, function(json, index){
  json.marker = markers[index];
});
Другие вопросы по тегам