如何在d3中加载geojson文件的geometryCollection

时间:2014-12-19 09:49:24

标签: javascript json d3.js geojson

我使用地图编辑器成功将英国地图shapefile转换为geojson。但是我无法在d3.js中加载这个geojson。请帮忙。脚本如下。

<script src="http://d3js.org/d3.v3.min.js"></script>
<script>

var canvas = d3.select("body").append("svg")
        .attr("width", 760)
        .attr("height", 700)

        d3.json("Areas_uk_geo.json", function (data) {
            var group = canvas.selectAll("g")
                .data(data.geometries)
                .enter()
                .append("g");

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

            var areas = group.append("path")
                .attr("d", path)
                .attr("class", "area");
        });
</script>

geojson文件有一个geometryCollection而不是featureCollection。 geojson文件具有以下格式。

{
    "type" : "GeometryCollection",
    "geometries" : [{
            "type" : "MultiPolygon",
            "coordinates" : [[[[-2.2241804372470533, 56.88745481725907],

......},......等等。

我得到的错误是&#34; d3.geo.path.projection不是函数&#34;

1 个答案:

答案 0 :(得分:0)

如@ vincent-beltman评论所述,它应该是

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

您可以使用Mike Bostock发布"Let’s Make a Map"

来确认这一点