Используя карты данных, я пытаюсь создать цвет для каждого отдела

#javascript #datamaps

Вопрос:

Я использую карты данных (http://datamaps.github.io/) и пытается сделать цвет для каждого отдела, у которого есть интервал в соответствии с условием if на карте Франции.

Например, если интервал == «1-50», выделите красным цветом все отделы, находящиеся в этом интервале, и добавьте это в

 data: {
    "mydepartment1": {
      fillKey: "red",
    },
    "mydepartment2": {
      fillKey: "gt50",
    }
  }
 

Это мой js :
импорт списка отделов из «../данные/отделы-список.json»;

 var jsonData = JSON.parse(JSON.stringify(departement_list));
const dataValues = jsonData.map((data) => data.Departement);
const uniqueValues = [...new Set(dataValues)];

let interval,
nb_votes = [];
for (const valeur of uniqueValues) {
  nb_votes = dataValues.filter((v) => v == valeur).length;
  if (nb_votes <= 0) {
    interval = "defaultFill";
  } else if (nb_votes > 1 amp;amp; nb_votes < 50) {
    interval = "1-50";
  } else if (nb_votes > 51 amp;amp; nb_votes < 100) {
    interval = "51-100";
  } else if (nb_votes > 101 amp;amp; nb_votes < 150) {
    interval = "101-150";
  } else if (nb_votes > 151 amp;amp; nb_votes < 200) {
    interval = "151-200";
  } else if (nb_votes > 201 amp;amp; nb_votes < 300) {
    interval = "201-300";
  } else if (nb_votes > 301 amp;amp; nb_votes < 400) {
    interval = "301-400";
  } else {
    interval = "401-";
  }
}

var map = new Datamap({
  scope: "fra",
  element: document.getElementById("map-france"),
  responsive: true,
  fills: {
    defaultFill: "#EDE8D6",
    "1-50": "#F4F1E6",
    "51-100": "#EDE8D6",
    "101-150": "#E2DABF",
    "151-200": "#CEC191",
    "201-300": "#BCAE7C",
    "301-400": "#9D893E",
    "401-": "#827131",
  },
  data: {
    "mydepartment1": {
      fillKey: "101-150",
    },
    "mydepartment2": {
      fillKey: "151-200",
    }
  }
});
 

Комментарии:

1. Каково ваше departements-list.json

Ответ №1:

Привет, не ясно, для чего предназначен ваш код, интервал, похоже, никогда не используется и просто сбрасывается с каждой итерацией uniqueValues

Я посмотрел, как использовать карты данных, похоже, что «ключ» заполнения соответствует fillKey data параметру

так что для

 data: {
    "mydepartment1": {
      fillKey: "red",
    },
    "mydepartment2": {
      fillKey: "gt50",
    }
  }
 

Для работы вам понадобится

 fills: {
    defaultFill: "#EDE8D6",
    "red": "#F4F1E6",
    "gt50": "#EDE8D6",
  },
 

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

Комментарии:

1. здравствуйте, да, я уже проверил эту ссылку, я не нашел то, что искал