无法将坐标解析/投影到JSON上

时间:2017-01-12 09:50:54

标签: javascript d3.js geojson

我只是想在json地图上绘制一堆圆圈,根据我通过csv解析的纬度和经度坐标,使用动态cxcy属性。

为了它的价值,我很长一段时间没有遇到这个问题,几乎是因为我完全是d3的新手。我阅读了所有相关文章,回顾了初学者的教程(没有羞耻感),我仍然无法理解我做错了什么。请看一下,它很短,关键线是67-68。你可以在这里找到我的json地图:

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

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

  1. 创建一个空选区。
  2. 将数据绑定到doms
  3. 追加数据中的视觉效果
  4. 如果我做了一些愚蠢的事情,无论如何都要钻进我 - 我心理上很强大,我可以接受它。

1 个答案:

答案 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。但是,您可能需要先检查数据并尝试事先将其筛选出来。

相关问题