我正在尝试使用 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)
})
但是我在这里遵循的 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"},...