D3js map - список стран по выбору

В настоящее время я создаю карту Германии с d3js для визуализации некоторых данных. Теперь я добавил на карту множество городов, которые открывают всплывающую подсказку с графикой, когда вы наводите на них курсор мыши. Проблема в том, что на данный момент карта немного хаотична. Поэтому я хочу добавить список всех городов рядом с картой, где вы можете выбрать нужный город, а затем он будет выделен на карте + появится всплывающая подсказка. У любого есть идея, как я могу достигнуть этого?

1 ответ

Вы можете создать выборочный ввод, используя d3 следующим образом:

// Create a div for the Input and its label
d3.select('#selectContainer').append('div').attr('id','selection');
d3.select("#selection").append('div').attr("class",'labelSelect').html("Select a City:");

// Create the Select Input
var refSelect  = d3.select("#selection")
        .append("select")
        .attr('id','citySelect')
        .on("change", changeCity);

// Set the options for the Select Input
var refOptions = refSelect.selectAll('option').data(allCityObjects);
    refOptions.enter()
        .append("option")
        .attr("selected", function(d){
            // logic that returns true for the city that should initially be selected, if need-be
        })
        .text(function(d) { return d.cityName; });

Тот changeCity Функция, вероятно, будет во многом напоминать ту, которая вызывается при наведении мыши прямо сейчас.

function changeCity() {
    // Grab currently selected option
    var s = d3.select(this);
    var i = s.property("selectedIndex");
    var d = s.selectAll('option').data()[i];

    // Call function that shows Tooltip for specific city 'd'

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