D3.js多个GeoJSON对象

D3.js Multiple GeoJSON objects

本文关键字:对象 GeoJSON 多个 js D3      更新时间:2023-09-26

我试图在两个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对象,然后转换成一个圆。

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

所以你可以,在理论上,有多个ajax调用来获取你需要的数据你决定做任何与该数据。

Mike Bostock为此实现了一个Queue。如果你正在使用JQuery与D3,你可以看看延期的一个例子,其中张贴在这里。

一旦你有了你需要的数据集,你现在可以决定你想要如何转换数据或提供它们之间的转换。

伪代码:

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
}