Обновление карт данных 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