我对编程非常陌生,正在尝试学习D3。我有法国地图,我可以让它出现在浏览器中。但是,我正在尝试基于csv文件在地图上显示圆。我不确定我的函数做错了什么……任何帮助/方向都是很好的。
下面是代码和文件的Cloud9。https://ide.c9.io/santiallende/d3-map-bubbles-france
发布于 2014-12-22 05:55:36
我不会装模作样的,你的代码一团糟。
您定义了4个不同的svg元素并将其附加到主体,然后创建了3个不同的投影。所有这些都是不必要的。只需遍历并删除所有冗余。
//Width and height
var w = 800;
var h = 350;
var canvas = d3.select("body").append("svg")
.attr("width", w)
.attr("height", h)
d3.json("france.json", function(data) {
var group = canvas.selectAll("g")
.data(data.features)
.enter()
.append("g")
//Define map projection
var projection = d3.geo.mercator()
.translate([400, 1200])
.scale([1100]);
//Define path generator
var path = d3.geo.path()
.projection(projection);
var areas = group.append("path")
.attr("d", path)
.attr("class", "area")
.attr("fill", "steelblue");
//Load in cities data
d3.csv("wineregions.csv", function(data) {
canvas.selectAll("circle")
.data(data)
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", 5)
.style("fill", "yellow")
.style("opacity", 0.75);
});
});修复代码here。
https://stackoverflow.com/questions/27588887
复制相似问题