【发布时间】:2021-11-21 16:36:38
【问题描述】:
我对 d3js 还是很陌生,并试图了解使用数据和基准将数据附加到元素之间的区别。我已经在网上阅读了相当多的材料,我想我理论上理解发生了什么,但我仍然缺乏直观的理解。具体来说,我有一个使用 topojson 创建地图的案例。我正在使用 d3js v7。
首先,我有以下代码在 div 中创建地图(假设高度、宽度、投影等设置正确):
var svg = d3.select("div#map").append("svg")
.attr("width", width)
.attr("height", height)
.attr("transform", "translate(" + 15 + "," + 0 + ")");
var path = d3.geoPath()
.projection(projection);
var mapGroup = svg.append("g");
d3.json("json/world-110m.json").then(function(world){
console.log(topojson.feature(world, world.objects.land))
mapGroup.append("path")
.datum(topojson.feature(world, world.objects.land))
.attr("class", "land")
.attr("d", path);
});
但如果我将基准更改为数据,地图就会消失。我正在努力提高我对它是如何工作的理解,并且在阅读了我可以在网上找到的内容后,我有点挣扎。有人能解释一下在这种情况下使用的数据和基准之间的区别以及为什么一个有效而另一个无效吗?
感谢您的帮助!
【问题讨论】:
标签: javascript json d3.js topojson