我正在尝试使用墨西哥市的topojson文件复制Mike Bostock的chropleth,并使用ID值与多边形匹配的.tsv对其进行着色。
到目前为止,我已经能够显示地图及其多边形,但是我无法根据.tsv文件中的值对其进行实际着色。
我怀疑问题出在此函数中,因为我不完全确定函数中调用.tsv的位置
queue()
.defer(d3.json, "mx5.topojson")
.defer(d3.tsv, "Cosecha.tsv", function(d) { rateById.set(d.id, +d.rate); })
.await(ready);
function ready(error, mx5) {
svg.append("g")
.attr("class", "mx4")
.selectAll("path")
.data(topojson.feature(mx5, mx5.objects.mx4).features)
.enter().append("path")
.attr("class", function(d) { return quantize(rateById.get(d.id)); })
.attr("d", path);
svg.append("path")
.datum(topojson.mesh(mx5, mx5.objects.Estados, function(a, b) { return a !== b; }))
.attr("class", "Estados")
.attr("d", path);
}
这是我的一个环节要点,在这里一到我的topojson墨西哥直辖市
任何帮助将不胜感激
您的代码期望县通过prop进行索引id
,例如rateById.set(d.id, +d.rate)
。
但是,您的tsv称它们为"Mun"
,如
"Mun" "rate"
"01001" 350058.5
"01002" 224305
"01003" 132115
因此更改d.id
为d.Mun
(在2个地方)或重命名"Mun"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句