Javascript 无法将/project坐标解析到JSON
我只是想在json地图上画一组圆圈,根据我通过csv解析的纬度和经度坐标,使用动态Javascript 无法将/project坐标解析到JSON,javascript,d3.js,geojson,Javascript,D3.js,Geojson,我只是想在json地图上画一组圆圈,根据我通过csv解析的纬度和经度坐标,使用动态cx和cy属性 值得一提的是,我已经很久没有遇到这个问题了,几乎是在我对d3完全陌生的时候。我通读了所有相关的帖子,回顾了初学者教程(毫不羞耻),但我仍然不明白我做错了什么。请看一下,它很短,关键线是67-68。您可以在这里找到我的json映射: 您会注意到,没有附加圆。据我所知,我以正统的D3.js方式添加了圆圈: 创建一个空的选择 将数据绑定到doms 从数据中附加视觉效果 如果我做了什么蠢事,无论如何,把它
cx
和cy
属性
值得一提的是,我已经很久没有遇到这个问题了,几乎是在我对d3完全陌生的时候。我通读了所有相关的帖子,回顾了初学者教程(毫不羞耻),但我仍然不明白我做错了什么。请看一下,它很短,关键线是67-68。您可以在这里找到我的json映射:
您会注意到,没有附加圆。据我所知,我以正统的D3.js方式添加了圆圈:
如果我做了什么蠢事,无论如何,把它灌输给我——我的心理很坚强,我可以接受 您的数据包含一些坐标,这些坐标不在AlbersUSA投影的明确定义区域内。有关更多详细信息,请参阅我的。由于投影将为这些返回
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
这将在地图上显示。不过,您可能需要先检查数据,并尝试事先筛选出来。哇,这样做了。好主意,我从来没有想过要从数据的角度来检查它。顺便说一下,如果坐标在海洋中,靠近陆地,它也会是空的?例如夏威夷周围的水域?这取决于坐标。你有具体的例子吗?@ArashHowaida不过,不管它是在海洋还是在陆地上。看看这幅描绘阿拉斯加和夏威夷狭窄边界的图画。再次感谢你,你的帮助是无价的。我还有一个后续问题。在我将
.filter()
链接到代码开头的数据映射部分之后,我还想添加另一个过滤器,以便仅在南加州添加圆。所以在append circle部分,在.data(data)
之后,我添加了这个:.filter(函数(d){return(Math.abs(d.Latitude-34)