1

我正在尝试使用这个 shapefile用 D3(和 topojson)制作干旱地图。

我已将它转换为 GeoJSON 和 topojson,但在任何一种情况下,尝试渲染都会导致浏览器挂起,并且该选项卡的 CPU 达到 100% 或更高。

我可以渲染更大的文件,就像所有美国县一样,我可以使用 Mapnik 或 TileMill 渲染文件。但是在浏览器中,它死了。

这是相关代码

var map = d3.select('#map').append('svg')
    .style('width', width)
    .style('height', height);

var albers = d3.geo.albersUsa();

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

d3.json(urls.drought, function(err, data) {

    var drought = window.drought = topojson.feature(data, data.objects.usdm130521);

    map.selectAll('path')
        .data(drought.features)
      .enter().append('path')
        .attr('d', path);
});
4

1 回答 1

1

想通了。正如USDM 网站所说,“文件已投影到美国连续阿尔伯斯等面积圆锥投影。”

事实证明,这是一个问题,尽管我并不完全理解。我将其转换为EPSG: 4326使用ogr2ogr

$ ogr2ogr -t_srs EPSG:4326 usdm130521-projected.shp usdm130521.shp

它渲染了。也快。

Mike Bostock在这里写了更多关于投影 topojson的文章。

于 2013-05-25T03:03:57.190 回答