Вы по-прежнему можете фильтровать округа, так же, как и вы, которые просто влияют на количество вводимых элементов, не должно быть проблемой для методов .attr или .on

отаю с вариациейКвантильный хороплет Бостока.

Я успешно масштабировал проекцию и интегрировал свои собственные данные. Я также в настоящее время фильтрую данные округов json, чтобы включить только идентификаторы округов, начиная с идентификатора штата 48.

Все работает отлично, однако мне все еще нужно применить функцию .mesh, чтобы объединить дуги между граничащими округами. Иначе, когда я добавляю эффект наведения, я получаю странно неровные границы.

Вместо этого я попытался заменить вызов данных базовым (ячеистым) вызовом (смотрите закомментированную строку ниже) но это не сработало.

Вот мой рабочий код:

function ready(error, us) {
  if (error) throw error;

    //define the feature of the states from the topojson file, then filter so only state 48 (texas) shows
  var states = topojson.feature(us, us.objects.states),
  state = states.features.filter(function(d) { return d.id === 48; })[0];

    //define the features for the counties and filter based on number (starting with 48)
  var counties = topojson.feature(us, us.objects.counties),
  mycounties = counties.features.filter(function(d) { if(d.id >= 48000 && d.id <=49000) return d.id; });

    //initiate the class for the state, and add an outline path
  svg.append("path")
      .datum(state)
      .attr("class", "outline")
      .attr("d", path);

    //initiate the g object for the counties
  svg.append("g")
      .attr("class", "counties")
    .selectAll("path")
    //.datum(topojson.mesh(us, us.objects.counties, function(a, b) { return a !== b; }))
    // ^I tried adding this to replace the following line, but it does not work
    .data(mycounties)
    .enter().append("path")
      .attr("fill", function(d) { return color(d.establishments = centralTexas.get(d.id)); })
      .attr("d", path)
    .append("title")
      .text(function(d) { var obj2 = jsonCounties[d.id]; if (typeof obj2 != "undefined") {return obj2.countyName + ": " + d.establishments + " Active Establishments";} });

}

Как я должен идти об этом? Можно ли сделать более сложный запрос фильтра внутри функции .mesh и полностью избавить меня от необходимости

var counties = topojson.feature (us, us.objects.counties), mycounties = counties.features.filter (function (d) {if (d.id> = 48000 && d.id <= 49000) return d.id; });

код?

Или мне нужно запустить функцию сетки для этой переменной с другим синтаксисом?

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

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