Обновление карт данных Chloropleth с пользовательскими картами

Это странно.

Я могу сделать следующее со стандартной картой мира, и она работает при нажатии кнопки изменения:

    $("#change").on("click", function() {
        map.updateChoropleth({
          "USA": "#ff0f00",
          "IRQ": "#0fa0fa",
          "FRA": "blue",
          "UKR": "orange",
          "MEX": "#00ffaf"
        });
   });

Если я использую свой пользовательский файл topojson, я могу сделать это, и изменение вступит в силу, когда карта загрузится:

map.updateChoropleth({
  "Choptank River": {fillKey: "Poor"}
});

Но как только я пытаюсь обернуть его в обработчик события щелчка (именно так, как у меня это делается для примера карты мира), он не работает:

$("#change").on("click", function() {
    console.log("test");
    map.updateChoropleth({
      "Choptank River": {fillKey: "Poor"}
    });
});

Тестовое оповещение срабатывает нормально, но карта хлороплетов не обновляется.

Спасибо за любые идеи!

1 ответ

Решение

Оказывается, это было из-за пробелов в id: "Река Чоптанк".

https://github.com/markmarkoh/datamaps/issues/124

"DataMaps использует селекторы классов для применения цветов при асинхронной загрузке данных. Поскольку в полях id в вашем файле есть пробелы, селекторы классов не могут ничего найти".

Спасибо @markmarkoh

Другие вопросы по тегам