如何将海洋形状文件转换为topojson

时间:2013-09-26 09:12:23

标签: d3.js topojson

我的MacO 10.7.5上安装了gdal 1.10.1和topojson 1.4.0。 我已经下载了ne_110m_ocean形式的自然地球。

我在GeoJSON中成功转换了形状文件:

ogr2ogr \
  -f GeoJSON \
  ocean.json \
  ne_110m_ocean.shp

然后我将GeoJSON转换为topojson:

topojson \
  -o ocean_tj.json \
  ocean=ocean.json \

当我使用GeoJSON文件进行绘图时,一切正常。

d3.json("ocean.json", function(json) {
  svg.selectAll("path")
 .data(json.features)
 .enter()
 .append("path")
 .attr("d", path)
 .style("fill", "steelblue");
});

当我使用topojson文件进行绘图时,我没有海洋的多边形,而是获得了土地的多边形!!!!

d3.json("ocean_tj.json", function(topology) {
var ocean = topojson.feature(topology, topology.objects.ocean); 
svg.append("path")
.datum(ocean)
.attr("d", path)
.style("fill", "red");
});

有人可以帮忙吗?

提前致谢

1 个答案:

答案 0 :(得分:4)

使用选项--no-force-clockwise解决问题:

topojson -o ocean_tj.json ocean=ocean.json --no-force-clockwise