2016-10-26 63 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] 
}); 

还改变量化方法。这应该可以解决你的问题