2016-10-26 100 views
0

我試圖顯示一個地圖,當它懸停在它上面顯示狀態名稱和數據綁定到我的數據對象指定的狀態。D3地圖數據標籤沒有正確顯示

Codepen:http://codepen.io/jacob_johnson/pen/ORqwEL?editors=1010

我的問題是獲得數據的狀態名稱文本之後正確顯示的 - 我只是得到一個未定義的變量。數據不顯示任何內容。我不知道如何正確獲取這些數據,因爲我認爲這種方法可行。這是它是如何調用的數據:

... AT LINE 353 of CODEPEN LINK 
.on("mousemove", function(d) { 
     var html = ""; 

     html += "<div class=\"tooltip_kv\">"; 
     html += "<span class=\"tooltip_key\">"; 
     html += id_name_map[d.id]; 
     html += "</span>"; 
     html += "<span class=\"tooltip_value\">"; 
     html += valueById.get(d.id); 
     html += ""; 
     html += "</span>"; 
     html += "</div>"; 

     $("#tooltip-container").html(html); 
     $(this).attr("fill-opacity", "0.8"); 
     $("#tooltip-container").show(); ... 

我不明白爲什麼它顯示未定義。任何幫助將不勝感激。

謝謝。

回答

2

您沒有正確訪問數據的屬性。

data.forEach(function(d) { 
    // d doesn't have the properties MAP_STATE and MAP_VALUE 
    var id = name_id_map[d[MAP_STATE]]; // change to d[0][0] 
    valueById.set(id, +d[MAP_VALUE]); // change to d[1][1] 
}); 

還改變量化方法。這應該可以解決你的問題