D3.js不会在屏幕上显示任何内容

时间:2016-11-30 17:31:27

标签: javascript d3.js maps geojson topojson

我正在尝试使用D3.js,但我不能。我有下面的代码,但它不打印巴西的地图。屏幕没有显示任何错误,它可能是什么?我的文件“meso.json”是topojSON格式,但是它已经在d3.js代码中将topojSON转换为GeoJson:

<html>
    <head>
        <title>D3.js</title>
        <meta charset="utf-8" />
        <script src="http://d3js.org/d3.v3.min.js"></script>
        <script src="http://d3js.org/queue.v1.min.js"></script>
        <script src="http://d3js.org/topojson.v1.min.js"></script>

        <script>

            var width = 900,
                height = 650;

            var svg = d3.select("body").append("svg")
                .attr("width", width)
                .attr("height", height);

            var projection = d3.geo.mercator()
            .center([55,10])
            .scale(750);

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

            queue()
            .defer(d3.json, "topo/meso.json")
            .await(ready);

            function ready(error, br_mesos){

                if(error) return console.error(error);

                var mesos = topojson.feature(br_mesos, br_mesos.objects.meso);

                svg.append("path")
                .datum(mesos)
                .attr('d', path)
                .attr('class', 'mesos');

            }
        </script>
    </head>

    <body>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

请将所有导入从 http更改为https ,因为某些浏览器会屏蔽http。

例如:更改<script src="http://d3js.org/topojson.v1.min.js"></script>   <script src="https://d3js.org/topojson.v1.min.js"></script>和所有人类似。