D3.js多个GeoJSON对象

时间:2013-06-01 13:13:11

标签: javascript d3.js geojson

我正在尝试在两个GeoJSON对象之间进行转换,但是无法找到有关如何包含多个GeoJSON文件的任何信息。我对最终转换感到满意,但在多个GeoJSON文件中找不到任何内容。

我现在可以像这样绘制一张地图:

d3.json("goldatt2.json", function (data) {

    var group = canvas.selectAll("g")
        .data(data.features)
        .enter()
        .append("g")

    var path = d3.geo.path().projection(d3.geo.equirectangular());

    var areas = group.append("path")
        .attr("d", path)

我如何更改这个以便调用两个GeoJSON文件并进行转换?

我找到了这个例子http://bl.ocks.org/mbostock/3081153但是在这个例子中只有GeoJSON对象然后被转换为圆形。

1 个答案:

答案 0 :(得分:0)

获取数据是转换它的单独任务。

理论上,您可以通过多次ajax调用来获取所需的数据,然后决定对该数据执行任何操作。

Mike Bostock为此目的实施了Queue。 如果您在D3中使用JQuery,可以查看Deferred已发布的示例here

获得所需的数据集后,您现在可以决定如何转换数据或提供数据转换。

的伪代码:

var files = ["file1.json", "file2.json"];

//Fetch Data for both files and create a data set object of this format
var dataset = {
    "file1.json": {/*geojson data for file1*/},
    "file2.json": {/*geojson data for file2*/}
}

for(var item in dataset) {
    var data = dataset[item];
    //Do whatever transformation you need
}