我正在尝试使用D3.js创建一个世界地图,并通过queue.js分别加载多个CSV文件。但是,我无法渲染json几何,更不用说能够将CSV值附加到路径ID。
如果没有queue.js方法,SVG将使用此方法在浏览器中完美加载:
d3.json("world-50m.json", function(error, world) {
svg.append("g")
.selectAll("path")
.data(topojson.feature(world,world.objects.countries).features)
.enter().append("path")
.attr("class","land")
.attr("d", path)
})
但是我跟着here的queue.js方法没有渲染SVG。
首先:
queue()
.defer(d3.json, "world-50m.json")
//.defer(d3.csv, "gni.csv", function(d) {rateById.set(d.id, +d.value);})
.await(ready);
然后:
function ready(error, world){
svg.append("g")
.selectAll("path")
.data(topojson.feature(world,world.objects.countries).features)
.enter().append("path")
.attr("class", "land")
// .attr("class", function(d) {return quantize(rateById.get(d.id));})
.attr("d", path)
}
有人可以告诉我我可能犯了什么错误吗? 这是json文件结构的片段:
{
"type":"Topology",
"transform":{
"scale":[0.03600360036003601,0.017366249624962495],
"translate":[-180,-90]
},
"objects":{
"countries":{
"type":"GeometryCollection","geometries":[
{"type":"Polygon","arcs":[[0,1,2,3,4,5]],"id":"Afghanistan"},...