карта d3 с фильтрацией по флажкам

Я сделал символическую карту d3 и хотел бы, чтобы пользователь мог фильтровать точки по атрибуту с именем type. Существует три типа: a, b, c, с каждым из которых связан соответствующий флажок html, при котором флажки должны отображать точки типа a, а при снятии флажка - удалять эти точки. Мне было интересно, как лучше всего передать событие check / uncheck в d3? Я думаю, если бы был способ передать проверенные типы в select.filter (), это был бы лучший способ. Вот код:

HTML

<div class="filter_options">
<input class="filter_button" id="a_button" type="checkbox">a</input><br>
<input class="filter_button" id="b_button" type="checkbox">b</input><br>
<input class="filter_button" id="c_button" type="checkbox">c</input><br>
</div>

JS

queue()
.defer(d3.json, "basemap.json")
.defer(d3.json, "points.json")
.await(ready);

function ready(error, base, points) {

var button = 

svg.append("path")
  .attr("class", "polys")
  .datum(topojson.object(us, base.objects.polys))
  .attr("d", path);

svg.selectAll(".symbol")
  .data(points.features)
.enter().append("path")
  .filter(function(d) { return d.properties.type != null ? this : null; })
  .attr("class", "symbol")
  .attr("d", path.pointRadius(function(d) { return radius(d.properties.frequency * 50000); }))
  .style("fill", function(d) { return color(d.properties.type); });;

В настоящее время фильтр настроен на улавливание всех точек:

.filter(function(d) { return d.properties.type != null ? this : null; })

Я хотел бы, чтобы пользователь мог изменить это.

ура

Ответы на вопрос(1)

Ваш ответ на вопрос