【发布时间】:2015-09-04 06:27:07
【问题描述】:
我正在尝试建立一个看似基本的美国 D3 地图,其中 9 个人口最多的城市用圆圈标记,但遇到了一个必须非常明显但令人困惑的问题。
我正在使用 Albers USA 投影,即 U.S.声明 GeoJSON 文件,以及一个 .csv,其中包括:
- 城市名称
- 2014 年估计人口
- 纬度
- 经度
我使用 Google Fusion 表的地理编码功能计算了经纬度值,它们与 Scott Murray's D3 book github page 上可用的值相匹配。
当我试图在每个城市应该存在的地方画一个圆圈时,几乎每个城市都不合适。在我试图绘制的 9 个城市中——纽约、费城、芝加哥、休斯顿、达拉斯、圣安东尼奥、凤凰城、圣地亚哥、洛杉矶——只有纽约和费城相对完整。芝加哥转向明尼阿波利斯。圣地亚哥和洛杉矶一团糟。得克萨斯州和亚利桑那州的城市已经完全从他们的州消失了。
这是 d3.csv 代码:
d3.csv("city_pop.csv", function(data){
console.log(data);
var rScale = d3.scale.linear()
.domain([0, d3.max(data, function(d){
return parseFloat(d.estimate_2014);
})])
.range([1,15]);
dataset = data;
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr({
"cx": function(d) { return projection([d.lon, d.lat])[0];},
"cy": function(d) { return projection([d.lon, d.lat])[1];},
"r": function (d) { return rScale(parseFloat(d.estimate_2014));}
})
.style({
"fill": "red",
"opacity": 0.8
});
});
这里是要点:http://bl.ocks.org/iblind/2e90a6f516fee793380e
我整天都在玩这个。有没有人有任何想法?我一直在用头撞墙,感觉就像永远一样,完全迷失了。
tl;dr:为什么这张 D3 地图中的城市 http://bl.ocks.org/iblind/2e90a6f516fee793380e 没有出现在他们的位置 应该出现吗?
【问题讨论】:
-
请将您的代码添加到问题中,不要链接到外部网站。
-
@xxbbcc 谢谢,我添加了 d3.csv( ) 代码。
标签: javascript d3.js