为什么 D3.js 无法显示我的 geoJSON 文件?

3

我想用D3.js绘制柏林(德国)的轮廓线。

我使用的柏林geoJSON文件是这个(那里有柏林-“bundesländer”): http://opendatalab.de/projects/geojson-utilities/

但它对我的.json文件不起作用。我无法发现与这个.us-states的.json文件的区别,它可以完美地使用完全相同的代码: http://examples.oreilly.com/0636920026938/chapter_12/us-states.json

我还尝试完全复制us-states文件,删除除一个之外的所有“features”条目,然后只替换剩下的坐标数组与我的文件的坐标数组。但是火狐浏览器告诉我路径元素根本没有“d”属性。

我真的很感激任何提示。提前谢谢!

/* 我使用默认的albersUsa投影。 如果我将路径定义为:d3.geo.path().projection(null),则会添加一些路径元素。 但如果那是解决方案,那我如何翻译这个路径呢? */

    var path = d3.geo.path();

    d3.json("data/berlinBundeslaender_simplify2000.json",function(geoJson){

        var color1 = d3.scale.category20();

        mainSVG.selectAll("path")
        .data(geoJson.features)
            .enter()
            .append("path")
            .attr("d",path)
            .attr("fill",function(d,i){return color1(i);});
    });

1
最好使用 jsfiddle 来展示出现问题的部分。 - Andy
1
不要使用albersUSA投影。它会裁剪美国以外的任何内容。 - Lars Kotthoff
谢谢Lars!那解决了我的问题!还要感谢Andy,下次我会考虑使用jsfiddle,我之前不知道它。 - Seb Waynee
好的,我会把这个作为答案添加以便参考。 - Lars Kotthoff
1个回答

3

albersUSA投影会裁剪掉不在美国48个州、夏威夷或阿拉斯加地区的任何内容。也就是说,其他地区的内容将不会被显示。对于世界上其他地区,请使用不同的投影方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接