3

我正在尝试在两个 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 对象然后被转换为一个圆圈。

4

1 回答 1

0

获取数据是与转换数据相关的单独任务。

因此,理论上,您可以在决定对这些数据执行任何操作之前进行多次 ajax 调用来获取所需的数据。

为此, Mike Bostock 有一个Queue实现。如果您将 JQuery 与 D3 一起使用,您可以查看Deferred的示例,该示例发布在此处

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

伪代码:

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
}
于 2014-05-06T02:56:57.037 回答