未能 parse/project 坐标到 JSON

Fail to parse/project coordinates onto JSON

我只是想在 json 地图上绘制一堆圆圈,根据我通过.csv.

不管怎样,我已经很久没有遇到过这个问题了,几乎从我完全不熟悉 d3 开始。我通读了所有相关的帖子,回头看了看初学者的教程(毫不羞愧),但我仍然无法理解我做错了什么。请看,很短,重点是67-68行。您可以在这里找到我的 json 地图:

http://bl.ocks.org/diggetybo/a2ace75c8ea89ab0da996154d3df7f5c

您会注意到,没有附加圆圈。据我所知,我开始以正统的 D3.js 方式附加圆圈:

  1. 创建一个空选择。
  2. 绑定数据到doms
  3. 从数据中追加视觉效果

如果我做了什么蠢事,无论如何,把它灌输给我——我心理强大,我能承受。

您的数据包含一些不在 AlbersUSA 投影的 well-defined 区域内的坐标。有关详细信息,请参阅我的 to "D3 albersUsa projection funtion return null"。因为投影会 return null 这些,你会得到一个错误,这会破坏圆的创建。

一种天真的方法是过滤掉 non-valid 坐标:

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 显示在地图上。但是,您可能需要先检查您的数据并尝试事先筛选它们。