d3.js使用不同文件上的坐标在地图上绘制机场地图点
我想在d3.js的地图上标出美国的机场 源文件是csv文件,只有机场代码,如LAX或JFK。 坐标位于不同的json文件中。 我正在使用函数plot_airports,我的问题是如何将带有坐标的机场代码连接到数据变量中d3.js使用不同文件上的坐标在地图上绘制机场地图点,d3.js,D3.js,我想在d3.js的地图上标出美国的机场 源文件是csv文件,只有机场代码,如LAX或JFK。 坐标位于不同的json文件中。 我正在使用函数plot_airports,我的问题是如何将带有坐标的机场代码连接到数据变量中 function plot_airports(data) { svg.append('g') .attr("class", "airports") .selectAll("circle") .dat
function plot_airports(data) {
svg.append('g')
.attr("class", "airports")
.selectAll("circle")
.data(data)
.enter()
.append("circle")
.attr('cx', function(d) {return projection([d.lon,d.lat])[0]; })
.attr('cy', function(d) {return projection([d.lon,d.lat])[1]; })
.attr('r', 5)
读取机场代码的功能如下:
d3.csv("sample.csv",function(d) {
return d["airport"];
});
还有那个有机场的:
d3.json("airports.json");
我试图将每个函数的结果保存到变量中,然后将它们与机场代码作为键连接起来,但结果变量为空
谢谢你的帮助 d3.csv
函数不会返回可分配给变量的可用值。也就是说,你不能这样做:
var foo = d3.csv("sample.csv",function(d) {
return d["airport"];
});
这根本行不通
解决方案是嵌套两个异步函数:
d3.json("airports.json", function(dataCoordinates) {
//get the airports coordinates in an array named 'dataCoordinates'
d3.csv("sample.csv", function(dataCodes) {
//get the airports codes in an array named 'dataCodes';
//create your circles accessing both arrays, or join the arrays
//using the airport code as key.
});
});