我只是想在json地图上绘制一堆圆圈,根据我通过csv解析的纬度和经度坐标,使用动态cx
和cy
属性。
为了它的价值,我很长一段时间没有遇到这个问题,几乎是因为我完全是d3的新手。我阅读了所有相关文章,回顾了初学者的教程(没有羞耻感),我仍然无法理解我做错了什么。请看一下,它很短,关键线是67-68。你可以在这里找到我的json地图:
http://bl.ocks.org/diggetybo/a2ace75c8ea89ab0da996154d3df7f5c
您会注意到,不会附加任何圆圈。据我所知,我开始以正统的D3.js方式附加圈子:
如果我做了一些愚蠢的事情,无论如何都要钻进我 - 我心理上很强大,我可以接受它。
答案 0 :(得分:1)
您的数据包含一些坐标,这些坐标不在AlbersUSA投影的明确区域内。有关详细信息,请参阅我的answer至"D3 albersUsa projection funtion return null"。由于投影会为这些投放返回null
,因此会出现错误,从而导致圈子的创建失败。
一种天真的方法是过滤掉无效的坐标:
var data = rawData.map(function(d)
{
return {
Latitude: +d.latitude,
Longitude: +d.longitude,
Place: d.place
};
})
.filter(d => projection([d.Longitude, d.Latitude])); // filter out null values
这将在地图上display the circles。但是,您可能需要先检查数据并尝试事先将其筛选出来。