【问题标题】:how to load geometryCollection of geojson file in d3如何在d3中加载geojson文件的geometryCollection
【发布时间】:2015-02-18 05:34:16
【问题描述】:

我使用 mapshaper 成功地将英国地图 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],

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

我得到的错误是“d3.geo.path.projection 不是函数”

【问题讨论】:

  • 我觉得应该是d3.geo.path().projection(projection);
  • @VincentBeltman 感谢您的指正。

标签: javascript json d3.js geojson


【解决方案1】:

正如@vincent-beltman 评论中提到的,应该是

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

您可以通过 Mike Bostock 的帖子"Let’s Make a Map" 确认这一点

【讨论】:

    猜你喜欢
    • 2017-11-12
    • 2023-04-11
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    相关资源
    最近更新 更多