我正试图建立一个似乎是美国基本的D3地图,其中有9个人口最多的城市被标记为圆圈,但却遇到了一个非常明显但却令人困惑的问题。 / p>
我正在使用 Albers USA投影,美国。陈述GeoJSON文件,以及 .csv ,其中包括:
我使用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没有出现在他们的位置 应该出现?
答案 0 :(得分:2)
基础数据错误(city_pop.csv)。通过谷歌地图运行您的纬度和经度,您将看到相同的模式形式。 例如宾夕法尼亚州费城(37.15477,-94.486114)不是宾夕法尼亚州的所在地 - https://goo.gl/maps/1G754