javascript - D3.js多个GeoJSON对象

标签 javascript d3.js geojson

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

我目前可以绘制一张 map ,如下所示:

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实现。
如果您在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
}

关于javascript - D3.js多个GeoJSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873102/

相关文章:

leaflet - 在 MapBox 中加载 geoJson 以使用 Leaflet.Draw 进行编辑

javascript - d3.js geoJSON 和边界

javascript - 在这种情况下如何使用 Async/Await?

javascript - Heroku React App 显示数据库的 json 而不是 UI?

javascript - D3 图 : how may i assign images inside a node

google-chrome - Chrome 版本 70 上的触摸处理完全损坏

javascript - d3 GeoJSON geoCircle 椭圆等效

javascript - 如何读取文件夹内的文件夹并从每个文件夹获取 index.html 并作为列表 (li) 标记中的链接传递

javascript - TypeError : $ . 查找不是函数

d3.js - 将图像的 anchor 移动到其中心